我正在尝试编辑一个如下所示的文件:
Separator line of dashes
Letters
Separator line of dashes
aaa
bbb
Separator line of dashes
Numbers
Separator line of dashes
111
222
破折号之间的短语应该是部分的 Headers .
使用sed,我想在“Numbers”部分添加一个类似“000”的字符串 . 输出将是:
Separator line of dashes
Numbers
Separator line of dashes
000
111
222
我的问题是:我如何告诉sed我想附加“000”作为 Headers 为“Numbers”的第一行?
我有以下内容:
sed -i '/Numbers/ a\New ACE goes here' myFile
有了这个我的线被添加到 Headers 下面,但我需要它实际上下面2行 .
对于我将来的参考,如果我想告诉sed,在匹配“this line”后将其附加到特定的行号,会怎么样?
2 回答
使用sed:
当找到与
Numbers
匹配的行时,追加接下来的两行并在最后一个换行符之后添加000
字符串 .它产生:
EDIT :使用
a\
附加新行而不进行替换,如评论中所述 . 现在只在匹配Numbers
之后追加下一行(N
),因为a\
附加了自己的换行符 .它产生相同的结果 .
使用awk更容易 . 当第一个字段匹配
Numbers
时,打印该行,读取下一行(getline
),打印它然后打印您的行(000
) . 最后一个print
是输入文件的每个其他行的默认值:它产生: