我遇到了这个问题,我希望将命令的输出保存为文件名,并将来自不同命令(在同一脚本中)的输出流输出到该文件。我无法在线找到解决方案,所以现在就去了。以下是我的代码:
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输出将保存到具有该文件名的文件。
任何帮助都会受到赞赏。
答案 0 :(得分:1)
你做的太多了。只需在第一个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