Как добавить пустую строку перед первой строкой в текстовый файл с awk

У меня есть текстовые файлы. Я хотел бы добавить пустую строку перед первой строкой в каждом текстовом файле. Как я могу сделать это с awk?

5 ответов


Я бы предпочел GNU sed для этой задачи:

чтобы добавить пробел в начало файла:

sed '1s/.*/ &/' file.txt

чтобы выполнить это на нескольких текстовых файлов с


это даст вам бланк пробел в начале файла данных:

 awk 'BEGIN{printf(" ")}1' data.txt

в качестве альтернативы, это даст вам пустой строка в начале файла данных.

 awk 'BEGIN{print""}1' data.txt

Не нужно awk:

echo -n ' ' | cat - file

Это должно работать -

awk 'NR==1{a=; print ""; next} NR==2{print a; print ; next}1' file

для нескольких файлов -

awk 'FNR==1{a=; print ""; next} FNR==2{print a; print ; next}1' file1 file2 file3

сделайте это inline с perl:

perl -i -ne 'if(eof){$.=0;}if($.==1){print "\n";}print' temp temp2

temp и temp2-это два разных файла.после выполнения этой команды в начало каждого файла автоматически добавляется пустая строка.