Как передать выходной файл из сценария AWK в аргумент cat? - PullRequest
2 голосов
/ 08 декабря 2010

Я хочу объединить файл2 с файлом3 без сохранения файла2 на диске.

awk '...{print}' file1 > file2 

cat file2 file3 > file4 

Как это сделать без сохранения файла2?

Спасибо за помощь

Ответы [ 4 ]

3 голосов
/ 08 декабря 2010

Вы можете использовать подоболочку

(awk '...{print}' file1; cat file3) > file4
0 голосов
/ 08 декабря 2010

Вы можете сделать это без вложенной оболочки:

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

или даже:

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

Это приведет к тому, что file1 будет обработан do_stuff, а file3 будет передан напрямую.

0 голосов
/ 08 декабря 2010

Вы также можете использовать только Awk:

awk FNR file1 file3> file4

Это сократит file1 и file3 и сохранит его в file4

0 голосов
/ 08 декабря 2010

Я предпочитаю @ ответ Питера , но в зависимости от вашей оболочки (bash / zsh / ...) вы можете использовать подстановку процесса:

cat <(awk ...) file3 > file4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...