bash cat несколько файлов
Я пытаюсь cat
три файла и получить и вставить новую строку n
после каждого файла ,я думал использовать что-то вроде :
cat f1 f2 f3|tr "EOF" "n"
без успеха.
каков самый простой способ достичь этого ?
5 ответов
как только cat
файлы, между ними не будет EOF, и нет другого способа найти границу, поэтому я бы предложил что-то вроде for file in f1 f2 f3; do cat $file; echo; done
или, с абзацного отступа,
for file in f1 f2 f3; do
cat $file;
echo;
done
EOF
не символ, даже не CTRL-D - это просто обычный терминальный метод для указания EOF на интерактивном входе. Поэтому вы не можете использовать инструменты для перевода символов, чтобы как-то изменить его.
для этого простого дела,простой способ состоит в том, чтобы перестать беспокоиться о попытке сделать это в одном cat
: -)
cat f1; echo; cat f2; echo; cat f3
будет делать трюк просто отлично. Любое большее количество файлов может быть достойно скрипта, но я не вижу необходимость в этом маленьком деле.
если вы хотите совместить все эти потоки для дальнейшей обработки, просто запустите их в подуровне:
( cat f1; echo; cat f2; echo; cat f3 ) | some_process
У меня была аналогичная проблема, что сработало лучше всего для меня, я моя ситуация была:
grep "" file1 file2 file3 | awk -F ':' '{print }'