sed只在文件中更改一次字符串

lxy*_*xyu 7 bash sed command-line-interface

建议我有一个文件example如下:

c
a
b
a
b
d
Run Code Online (Sandbox Code Playgroud)

我想改变的第一次出现ae.然后我这样做:

sed -i 's/a/e/' example
Run Code Online (Sandbox Code Playgroud)

一切都a变成了e.

那么有没有办法让sed只在文件中替换一次?

谢谢.

Fel*_*abe 12

将Aziz的重复链接信息应用于您的问题,我认为这将为您提供所需的结果:

sed -i '0,/a/s//e/' example
Run Code Online (Sandbox Code Playgroud)

  • 为了更好的可读性,可以写成`sed -i 0,/ a/s/a/e /' (4认同)

acc*_*uya 5

将 Aziz 重复链接中的信息应用于您的问题,我认为这将为您的案例提供所需的结果:

sed -i '0,/a/s//e/' example
Run Code Online (Sandbox Code Playgroud)

拉贝的回答很好。但是,在地址范围和 's' 命令之间添加一个空格使其更清晰。像这样:

sed -i '0,/a/ s//e/' example
Run Code Online (Sandbox Code Playgroud)

威尔逊的版本似乎是多余的。