将多个命令的输出存储在文件中的一行中
Store the output from multiple commands on a single line in a file
我正在尝试将两个命令的输出作为一行存储到一个文件中。但是,存储的输出位于两条不同的线上。
脚本:
#!/bin/bash
date > test.log; pwd >> test.log
输出:
~]# cat test.log
Mon Jan 19 23:37:31 PST 2015
/home/jason
如何制作成单行?
预期输出
~]# cat test.log
Mon Jan 19 23:37:31 PST 2015 /home/jason
试试这个:
echo "$(date) $PWD" > test.log
如果您必须在不同的实例中执行 2 个命令并且仍然需要追加到同一文件和同一行,您可以这样做:
AMD$ echo -n "$(date) " > File
AMD$ echo "$(pwd)" >> File
AMD$ cat File
Tue Jan 20 13:27:41 IST 2015 /home/sdlcb/AMD
一般来说,echo
命令'flattens'将其参数合并成单行输出。当每个命令都产生一行输出时, given by John Zwinck 运行良好 — 甚至避免使用 pwd
命令生成当前工作目录。
如果命令产生多行输出,那么他的公式会将多行写入日志。例如,如果命令是:
printf "%s\n" line-1 line-2 line-3
printf "%s\n" more-1 more-2 more-3
然后 运行:
echo "$(printf "%s\n" line-1 line-2 line-3) $(printf "%s\n" more-1 more-2 more-3)" > test.log
向输出添加五行。相反,要实现扁平化,您需要避免使用引号(这一次 — 相对不寻常):
echo $(printf "%s\n" line-1 line-2 line-3) $(printf "%s\n" more-1 more-2 more-3) > test.log
这仅会根据需要向输出添加一行。
您可以只使用 date
命令来输出日期,并在同一行中使用另一个命令的输出:
date "+%a, %b %d %T %Z %Y $(pwd)"
Tue, Jan 20 03:12:15 EST 2015 /home/jason
date
命令将接受常规日期格式命令以及您想要输出的任何文字文本。
我正在尝试将两个命令的输出作为一行存储到一个文件中。但是,存储的输出位于两条不同的线上。
脚本:
#!/bin/bash
date > test.log; pwd >> test.log
输出:
~]# cat test.log
Mon Jan 19 23:37:31 PST 2015
/home/jason
如何制作成单行?
预期输出
~]# cat test.log
Mon Jan 19 23:37:31 PST 2015 /home/jason
试试这个:
echo "$(date) $PWD" > test.log
如果您必须在不同的实例中执行 2 个命令并且仍然需要追加到同一文件和同一行,您可以这样做:
AMD$ echo -n "$(date) " > File
AMD$ echo "$(pwd)" >> File
AMD$ cat File
Tue Jan 20 13:27:41 IST 2015 /home/sdlcb/AMD
一般来说,echo
命令'flattens'将其参数合并成单行输出。当每个命令都产生一行输出时,pwd
命令生成当前工作目录。
如果命令产生多行输出,那么他的公式会将多行写入日志。例如,如果命令是:
printf "%s\n" line-1 line-2 line-3
printf "%s\n" more-1 more-2 more-3
然后 运行:
echo "$(printf "%s\n" line-1 line-2 line-3) $(printf "%s\n" more-1 more-2 more-3)" > test.log
向输出添加五行。相反,要实现扁平化,您需要避免使用引号(这一次 — 相对不寻常):
echo $(printf "%s\n" line-1 line-2 line-3) $(printf "%s\n" more-1 more-2 more-3) > test.log
这仅会根据需要向输出添加一行。
您可以只使用 date
命令来输出日期,并在同一行中使用另一个命令的输出:
date "+%a, %b %d %T %Z %Y $(pwd)"
Tue, Jan 20 03:12:15 EST 2015 /home/jason
date
命令将接受常规日期格式命令以及您想要输出的任何文字文本。