我希望将file2与file3连接起来,而不保存磁盘中的file2。如何将AWK脚本的输出文件传递给cat中的参数?
awk '...{print}' file1 > file2
cat file2 file3 > file4
如何在不保存file2的情况下做到这一点?
谢谢您的帮助
我希望将file2与file3连接起来,而不保存磁盘中的file2。如何将AWK脚本的输出文件传递给cat中的参数?
awk '...{print}' file1 > file2
cat file2 file3 > file4
如何在不保存file2的情况下做到这一点?
谢谢您的帮助
你可以使用一个子shell
(awk '...{print}' file1; cat file3) > file4
我喜欢@Peter's answer,但是这取决于你的shell(bash中/ zsh中/ ...),你可以使用进程替换:
cat <(awk ...) file3 > file4
您也可以只使用awk中:
awk FNR file1 file3> file4
这将concenate file1
和file3
并将其保存到file4
你可以不用一个子shell:
awk '...{print}' file1 | cat - file3 > file4
甚至:
awk 'FNR!=NR {print;next} ... {do_stuff}' file1 file3 > file4
这将导致文件1是由do_stuff
处理,file3将直接通过。
刚刚测试了你的建议。它工作正常。知道这一点很方便,因为我有大量的输出,并没有足够的磁盘空间来保存它们。干杯 – Tony 2010-12-08 11:06:08
你不必使用子shell,使用大括号来分组当前shell中的命令:`{awk'...';猫文件3; }> file4`(尾随分号和大括号周围的空格是必需的) – 2010-12-08 16:57:43