我遇到了这个问题,我想将命令的输出保存为文件名,并将不同命令(在同一脚本中)的输出流式传输到该文件。我无法在网上找到解决方案,所以在这里。以下是我的代码:
zgrep --no-filename 'some-patter|other-pattern' /var/something/something/$1/* | awk -F 't' '{printf $8; printf "scriptLINEbreakerPARSE"; print $27}' | while read -r line ; do
awk -F 'scriptLINEbreakerPARSE' '{print $1}' -> save output of this as a filename
awk -F 'scriptLINEbreakerPARSE' '{print $2}' >> the_filename_from_above
done
所以基本上我想使用循环中的第一个 awk 将输出保存为文件名,然后第二个 awk 输出将保存到具有该文件名的文件中。
任何帮助将不胜感激。
你做的工作量太大了。只需在第一个awk命令中输出到所需的文件:
zgrep --no-filename 'some-patter|other-pattern' /var/something/something/$1/* |
awk -F 't' '{printf $27 > $8}'
请参阅 https://www.gnu.org/software/gawk/manual/html_node/Redirection.html