希望有人能帮助我。添加新行至特定行
我有大量的行数不同的文件。 我想在将文件添加新线达特定行,说6
Infile.txt
text1
text2
text3
该出的文件,我想已经是
Outfile.txt
text1
text2
text3
\n
\n
\n
希望有人能帮助我。添加新行至特定行
我有大量的行数不同的文件。 我想在将文件添加新线达特定行,说6
Infile.txt
text1
text2
text3
该出的文件,我想已经是
Outfile.txt
text1
text2
text3
\n
\n
\n
短AWK溶液:
awk -v r=6 'END{ while((r--)-NR>0) print "" }1' file
-v r=6
- 变量r
指示行如果您确信数据可能不是问题,但要小心数据文件的数量已超过所需的行数 - while循环将是无限的。 (也许更好地比较'(r - ) - NR> 0') – jas
@jas,对于这种情况 - 是的,编辑,谢谢 – RomanPerekhrest
在awk的END
块,内置可变NR
将包含文件的最后一行的行号。从那里可以很容易地打印所需数量的附加空行。
$ awk -v lines=6 '1; END {for (i=NR; i<lines; ++i) print ""}' file
text1
text2
text3
$ awk -v lines=6 '1; END {for (i=NR; i<lines; ++i) print ""}' file | wc -l
6
IMHO最清晰和最明显的方法来处理的总/最大数目这是简单的循环最后行号加1行的目标数量:
$ seq 3 | awk -v n=6 '{print} END{for (i=NR+1; i<=n; i++) print ""}'
1
2
3
$
您还可以,如果你想保存的变量倒计时:
$ seq 3 | awk -v n=6 '{print} END{while (n-- > NR) print ""}'
1
2
3
$
,但恕我直言,这就是牺牲清晰度赞成简洁和不值得。
无论行数和内容如何,您需要将6个空行添加到文件中?或者你有这样的逻辑吗? – SriniV