2010-12-08 83 views

回答

3

你可以使用一个子shell

(awk '...{print}' file1; cat file3) > file4 
+0

刚刚测试了你的建议。它工作正常。知道这一点很方便,因为我有大量的输出,并没有足够的磁盘空间来保存它们。干杯 – Tony 2010-12-08 11:06:08

+0

你不必使用子shell,使用大括号来分组当前shell中的命令:`{awk'...';猫文件3; }> file4`(尾随分号和大括号周围的空格是必需的) – 2010-12-08 16:57:43

0

我喜欢@Peter's answer,但是这取决于你的shell(bash中/ zsh中/ ...),你可以使用进程替换:

cat <(awk ...) file3 > file4 
0

您也可以只使用awk中:

awk FNR file1 file3> file4 

这将concenate file1file3并将其保存到file4

0

你可以不用一个子shell:

awk '...{print}' file1 | cat - file3 > file4 

甚至:

awk 'FNR!=NR {print;next} ... {do_stuff}' file1 file3 > file4 

这将导致文件1是由do_stuff处理,file3将直接通过。

相关问题