Tim*_*ham 32 sed awk text-processing
我有一个生成输出文件的外部程序(可能有 20K 行)。
我需要在现有的第 1 行和第 2 行之间插入一个新行。我一直在查看 awk 和 sed - 我经常在每个行中使用一个衬里 - 但我一直无法想出正确的开关做这个。
Kev*_*vin 22
awk 'NR==1{print; print "new line"} NR!=1'
Run Code Online (Sandbox Code Playgroud)
ang*_*gus 16
对于您的具体情况,这应该更简单:
sed '1 { P ; x }' your-file
Run Code Online (Sandbox Code Playgroud)
说明:在第1行,执行以下操作
然后,该行(现在为空)作为循环的一部分再次打印。
如果要添加新行而不是新行字符(我最初理解的),则只需使用sed's 命令a\(追加):
sed '1 a\
appended line' your-file
Run Code Online (Sandbox Code Playgroud)
甚至
sed '1 aappended line' your-file
Run Code Online (Sandbox Code Playgroud)
它appended line在第 1 行后附加“ ”。
我想sed方法是:
sed '2 i whatever_line_of_text_you_wanted_to_INSERT' filename.txt
这将使文本进入文件的第二行,然后文件中实际的第二行将成为第三行。
请注意,使用append mode,如果必须的话,它必须使用第一行,因为附加将发生在记录的行号之后。
sed '1 a whatever_line_of_text_you_wanted_to_INSERT' filename.txt