我有一些文本文件。我想在每个文本文件的第一行之前添加一个空行。我怎样才能用 awk 做到这一点?
问问题
16829 次
5 回答
15
我更喜欢GNU sed
这个任务:
要在文件开头添加空格:
sed '1s/.*/ &/' file.txt
要对具有扩展名的多个文本文件执行此操作.txt
,并直接对文件进行更改(即覆盖它们),请尝试:
sed -s -i '1s/.*/ &/' *.txt
在文件开头添加一个空行:
sed '1i\\' file.txt
要对具有扩展名的多个文本文件执行此操作.txt
,并直接对文件进行更改(即覆盖它们),请尝试:
sed -s -i '1i\\' *.txt
于 2012-09-30T04:48:21.953 回答
5
这将在数据文件的开头为您提供一个空白区域:
awk 'BEGIN{printf(" ")}1' data.txt
或者,这将在数据文件的开头为您提供一个空白行。
awk 'BEGIN{print""}1' data.txt
于 2012-09-30T04:26:55.957 回答
3
不需要awk
:
echo -n ' ' | cat - file
于 2012-09-30T04:31:21.810 回答
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
于 2012-09-30T04:24:38.220 回答
0
用 perl 内联:
perl -i -ne 'if(eof){$.=0;}if($.==1){print "\n";}print' temp temp2
temp 和 temp2 是两个不同的文件。执行此命令后,每个文件的开头都会自动添加一个空行。
于 2012-10-01T06:56:26.550 回答