Linux,将输出写入文件,包括命令
Linux, write output to file, including the command
如何将命令的输出写入文件,同时将命令包含在文件的开头?
例如:
grep -nrs 'blah' . >/home/ca/out.txt
以便文件显示
grep -nrs 'blah' . >/home/ca/out.txt
./something.cpp:1329: if(blah)
中间留空行?
grep -nrs 'blah' . >/home/ca/out.txt
./something.cpp:1329: if(blah)
....
谢谢
如果您在 bash 脚本中使用它,您可以先编写并回显行,然后将输出添加到文件中:
echo "grep -nrs 'blah' ." > /home/ca/out.txt
grep -nrs 'blah' . >> /home/ca/out.txt
使用script
命令将命令和输出保存在同一个文件中,如下
script -a mycommands.txt
待录制部分完成后,在终端中键入 exit
退出程序。
您可以使用 bash -vc
将命令行和结果都存储在一个文件中,如下所示:
bash -vc "grep -nrs 'blah' ." >& /home/ca/out.txt
-v
用于 bash 中的详细模式,在执行之前输出完整命令。
-c
用于 运行 来自命令行的命令
>&
用于重定向 stdout 和 stderr
另一种方法是将命令行存储在数组中:
arr=(grep -nrs 'blah' .)
{ printf "%q " "${arr[@]}"; echo; echo; "${arr[@]}"; } >& /home/ca/out.txt
您可以使用 logsave
(usage) 来记录输出以及时间戳和命令,例如:
logsave -a output.txt ls
将 ls
命令的输出保存到 output.txt:
Log of ls
Thu Jan 29 16:49:25 2015
[output of command]
Thu Jan 29 16:49:25 2015
----------------
如何将命令的输出写入文件,同时将命令包含在文件的开头?
例如:
grep -nrs 'blah' . >/home/ca/out.txt
以便文件显示
grep -nrs 'blah' . >/home/ca/out.txt
./something.cpp:1329: if(blah)
中间留空行?
grep -nrs 'blah' . >/home/ca/out.txt
./something.cpp:1329: if(blah)
....
谢谢
如果您在 bash 脚本中使用它,您可以先编写并回显行,然后将输出添加到文件中:
echo "grep -nrs 'blah' ." > /home/ca/out.txt
grep -nrs 'blah' . >> /home/ca/out.txt
使用script
命令将命令和输出保存在同一个文件中,如下
script -a mycommands.txt
待录制部分完成后,在终端中键入 exit
退出程序。
您可以使用 bash -vc
将命令行和结果都存储在一个文件中,如下所示:
bash -vc "grep -nrs 'blah' ." >& /home/ca/out.txt
-v
用于 bash 中的详细模式,在执行之前输出完整命令。-c
用于 运行 来自命令行的命令>&
用于重定向 stdout 和 stderr
另一种方法是将命令行存储在数组中:
arr=(grep -nrs 'blah' .)
{ printf "%q " "${arr[@]}"; echo; echo; "${arr[@]}"; } >& /home/ca/out.txt
您可以使用 logsave
(usage) 来记录输出以及时间戳和命令,例如:
logsave -a output.txt ls
将 ls
命令的输出保存到 output.txt:
Log of ls
Thu Jan 29 16:49:25 2015
[output of command]
Thu Jan 29 16:49:25 2015
----------------