我试图sed在某个模式后添加一个字符串,但我想排除已经存在附加字符串的情况。
例如:
"text.txt"
Hello
Bar
Hello world!
Run Code Online (Sandbox Code Playgroud)
如果我使用sed -i -e 's/Hello/Hello world!' text.txt第三行就变成
Hello world! world!
但我想保持它完好无损。
我发现了这个相关的问题,但并非我的文件中的所有行都需要修改。
有人有这个食谱吗?
您的问题的答案有点隐藏在相关问题的答案之一中:
/Hello world!/ ! s/Hello/Hello world!/
Run Code Online (Sandbox Code Playgroud)
它的第一部分是一个“地址”,即下面的命令只适用于匹配它的行。在!否定情况下,即,该命令将只被应用到线不匹配的地址。因此,换句话说,替换Hello由Hello world!上不包含行Hello world!。
| 归档时间: |
|
| 查看次数: |
6744 次 |
| 最近记录: |