디스크에 file2를 저장하지 않고 file2를 file3과 연결하려고합니다.AWK 스크립트의 출력 파일을 cat의 인수로 전달할 수 있습니까?
awk '...{print}' file1 > file2
cat file2 file3 > file4
어떻게 file2를 저장하지 않고 수행 할 수 있습니까?
당신은(awk '...{print}' file1; cat file3) > file4
디스크에 file2를 저장하지 않고 file2를 file3과 연결하려고합니다.AWK 스크립트의 출력 파일을 cat의 인수로 전달할 수 있습니까?
awk '...{print}' file1 > file2
cat file2 file3 > file4
어떻게 file2를 저장하지 않고 수행 할 수 있습니까?
당신은(awk '...{print}' file1; cat file3) > file4
주셔서 감사합니다,하지만 쉘 (bash는/zsh을/...)에 따라, 당신은 공정 대체를 사용할 수 있습니다 :
cat <(awk ...) file3 > file4
내가 @Peter's answer를 선호 서브 쉘을 사용할 수 있습니다 당신의 도움이
또한 사용할 수 있습니다 단지 awk는 :
awk FNR file1 file3> file4
이 file1
concenate 및 file3
그리고 당신은 서브 쉘없이 그것을 할 수 file4
그런 점에서'NFR'을'1'로 바꿀 수 있습니다. 그러나 file1을 처리하지 않고'cat'이하는 일을 정확히 수행하고 있습니다. –
에 저장됩니다 것조차
awk '...{print}' file1 | cat - file3 > file4
또는 : 원인이됩니다
awk 'FNR!=NR {print;next} ... {do_stuff}' file1 file3 > file4
은 파일 1로
do_stuff
에 의해 처리되고 file3은 곧바로 전달됩니다.
의견을 테스트했습니다. 그것은 잘 작동합니다. 많은 양의 출력이 있고이를 저장할 수있는 충분한 디스크 공간이 없기 때문에 이것을 아는 것이 편리합니다. 건배 – Tony
서브 쉘을 사용할 필요는 없으며, 현재 쉘에서 명령을 그룹화하기 위해 중괄호를 사용하십시오 :'{awk '...'; 고양이 파일 3; }> file4' (뒷부분의 세미콜론과 중괄호 주위의 공백이 필요합니다) –