我希望將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