我需要找到一种方法在模式之后向文件添加一行,但我不想编辑模式所在的行。
例如,我的原始文件看起来像
group: misc
host: server1
job: internal
Run Code Online (Sandbox Code Playgroud)
我想把它变成类似的东西
group: misc
host: server1
role: webserver
job: internal
Run Code Online (Sandbox Code Playgroud)
困难是我需要匹配“主机:”,但主机后面的名称每次都会不同。我还没有找到一种方法让 sed 尊重该行的其余部分,而是在找到“host:”后立即转储新行,使主机名在新行之后成为孤立的。
a
匹配后追加文本:
sed '/^host: /a\
role: webserver
' sample
Run Code Online (Sandbox Code Playgroud)
或者i
在匹配之前插入一行:
sed '/^job: /i\
role: webserver
' sample
Run Code Online (Sandbox Code Playgroud)