Как добавить пустую строку между файлами, которые я объединяю с "cat"? - PullRequest
13 голосов
/ 31 октября 2009

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

Ответы [ 5 ]

13 голосов
/ 31 октября 2009

используйте awk

awk 'FNR==1{print ""}{print}' file* > out.txt
9 голосов
/ 31 октября 2009

Попробуйте

find . -type f -exec cat {} \; -exec echo "-- spacer --" \;

Очевидно, что «spacer» может быть больше, чем простой пример, используемый здесь.

2 голосов
/ 31 октября 2009

Возможно, вы захотите увидеть pr(1), который может делать то, что вы хотите из коробки.

Чтобы развернуть свой собственный, разверните этот фрагмент сценария оболочки posix:

ls -1  | while read f; do cat "$f"; echo This is a spacer line; done > /tmp/outputfile

Это может быть более читабельно записано как:

ls -1 | while read f; do
    cat "$f"
    echo This is a spacer line
done > /tmp/outputfile

Вам не нужно -1 для ls.

0 голосов
/ 23 октября 2014

Я думаю, что самый простой способ - использовать команду paste:

paste $(ls *) > file.out
0 голосов
/ 31 октября 2009

echo "" > blank.txt<br/> cat f1.txt blank.txt f2.txt blank.txt f3.txt

Для обработки всех файлов в каталоге (при условии, что ksh похож на Shell)

for file in * ; do <br/> cat $file >> result.txt <br/> echo "" >> result.txt <br/> done

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...