如何使用awk在文本文件的第一行之前添加一个空行

时间:2012-09-30 04:10:19

标签: awk

我有一些文本文件。我想在每个文本文件的第一行之前添加一个空行。我怎么能用awk做到这一点?

5 个答案:

答案 0 :(得分:10)

我希望GNU sed执行此任务:

要在文件开头添加空格:

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

要在具有.txt扩展名的多个文本文件上执行此操作,并直接对文件进行更改(即覆盖它们),请尝试:

sed -s -i '1s/.*/ &/' *.txt

要在文件开头添加空行:

sed '1i\\' file.txt

要在具有.txt扩展名的多个文本文件上执行此操作,并直接对文件进行更改(即覆盖它们),请尝试:

sed -s -i '1i\\' *.txt

答案 1 :(得分:4)

这将在数据文件的开头为您提供空白空间

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

或者,这会在数据文件的开头为您提供空白

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

答案 2 :(得分:3)

无需awk

echo -n ' ' | cat - file

答案 3 :(得分:1)

这应该有效 -

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

对于多个文件 -

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

答案 4 :(得分:0)

使用perl进行内联:

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

temp和temp2是两个不同的文件。在执行此命令后,会在每个文件的开头自动添加一个空行。