我有一些文本文件。我想在每个文本文件的第一行之前添加一个空行。我怎么能用awk做到这一点?
答案 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是两个不同的文件。在执行此命令后,会在每个文件的开头自动添加一个空行。