我有一个外部程序可以生成一个输出文件(较大,可能有 20K 行)。
我需要在现有的第 1 行和第 2 行之间插入一个新行。我一直在研究 awk 和 sed - 我经常在每个中使用一个衬垫 - 但我一直无法想出正确的开关来做这个。
答案1
awk 'NR==1{print; print "new line"} NR!=1'
答案2
对于您的具体情况,这应该更简单:
sed '1 { P ; x }' your-file
解释: 在行1, 请执行下列操作
- 磷打印该行
- 乙X用保持空间更改模式空间(基本上清空缓冲区)
然后,作为循环的一部分,再次打印该行(现在为空)。
如果你想添加一个新队代替新行字符(我最初的理解)然后只需使用sed
的命令a\
(附加):
sed '1 a\
appended line' your-file
甚至
sed '1 aappended line' your-file
它在第 1 行之后附加“ appended line
”。
答案3
我想该sed
方法是:
sed '2 i whatever_line_of_text_you_wanted_to_INSERT' filename.txt
这会将文本放入文件的第二行,然后文件中的实际第二行将成为第三行。
请注意,使用附加模式,如果必须如此,则必须使用第一行,因为追加将发生在记录的行号之后。
sed '1 a whatever_line_of_text_you_wanted_to_INSERT' filename.txt
答案4
sed ':a;N;$!ba;s/\n/\n\n\n/' yourBigFile