建议我有一个文件
example
如下:
c
a
b
a
b
d
我想将第一次出现的
a
更改为 e
。然后我这样做:
sed -i 's/a/e/' example
并且所有
a
都更改为 e
。
那么有没有办法让 sed 在一个文件中只替换一次呢?
谢谢。
将阿齐兹的重复链接中的信息应用于您的问题,我认为这将为您的案例提供所需的结果:
sed -i '0,/a/s//e/' example
将阿齐兹重复链接中的信息应用于您的问题,我 认为这将为您的案例带来所需的结果:
sed -i '0,/a/s//e/' example
拉贝的回答很好。 但是,在地址范围和 's' 命令之间添加一个空格可以使其更加清晰。 像这样:
sed -i '0,/a/ s//e/' example
威尔逊的版本似乎多余。
sed -i '0,/needle/ s|needle|replacement|'
文件.txt
第一节与针的出现相匹配。在空格之后,它将开始替换该事件。
我个人认为将针展示两次更具可读性。其他答案中的
//
是 sed 记住第一根针的简写。
请注意,我将分隔符更改为 |。如果替换文本有斜杠,则更改分隔符会更容易。