Bash: "xargs cat", добавление новых строк после каждого файла - PullRequest
2 голосов
/ 03 июня 2010

Я использую несколько команд для cat нескольких файлов, например:

 cat somefile | grep example | awk -F '"' '{ print $2 }' | xargs cat

Это почти работает, но моя проблема в том, что я хотел бы добавить новую строку после каждого файла.

Можно ли это сделать в один лайнер?

(конечно, я могу создать новый скрипт или функцию, которая выполняет cat , а затем echo -n , но мне было интересно, можно ли это решить другим способом)

Ответы [ 3 ]

4 голосов
/ 03 июня 2010
cat somefile | grep example | awk -F '"' '{ print $2 }' | while read file; do cat $file; echo ""; done
1 голос
/ 10 июня 2010

При использовании GNU Parallel http://www.gnu.org/software/parallel/ это может быть даже быстрее (в зависимости от вашей системы):

cat somefile | grep example | awk -F '"' '{ print $2 }' | parallel "cat {}; echo"
0 голосов
/ 03 июня 2010

awk -F '"' '/ example / {system (" cat "$ 2}; printf" \ n "}' somefile

...