我正在使用下面的sed命令进行搜索和替换操作。

sed -i '/searchstring/s|find string|replace string|g' filename

它会更改输入文件中的所有引用。我怎么能只做一次。
谢谢。
例如,
a

a

b

b

a

c

d

这是输入文件。
我使用的命令如下,
sed -i '/a/s|a|changed|g' filename

输出如下,
changed

changed

b

b

changed

c


换了三次。
但我只需要换一次。
预期产出是,
changed

a

b

b

a

c

d

最佳答案

您可以使用这个sed

sed -i '/searchstring/s|find string|replace string|'

注意:已删除g ( global substitution )
根据你的更新,
sed -i '/search/{ s/search/changed/; t loop;}; :loop; n; b loop' yourfile

关于linux - 搜索并替换首次出现的字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23755206/

10-10 17:45