为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用sed替换文件中的第一个事件?

如何使用sed替换文件中的第一个事件?

如何使用sed替换文件中的第一个事件?我想在任何现有的#包含之前用额外的include指令更新大量的C+源文件。对于这类任务,我通常使用一个带有sed的小bash脚本来重写文件。我怎么才能sed只替换文件中字符串的第一次出现而不是替换每一次事件?如果我用sed s/#include/#include "newfile.h"\n#include/它取代了所有#包括。实现同样目标的替代建议也受到欢迎。
查看完整描述

3 回答

?
守着星空守着你

TA贡献1799条经验 获得超8个赞

 # sed script to change "foo" to "bar" only on the first occurrence
 1{x;s/^/first/;x;}
 1,/foo/{x;/first/s///;x;s/foo/bar/;}
 #---end of script---

或者,如果你喜欢:编者注:与GNU sed只有。

sed '0,/RE/s//to_that/' file

来源


查看完整回答
反对 回复 2019-07-02
?
catspeake

TA贡献1111条经验 获得超0个赞

sed '0,/pattern/s/pattern/replacement/' filename

这对我有用。

sed '0,/<Menu>/s/<Menu>/<Menu><Menu>Sub menu<\/Menu>/' try.txt > abc.txt

编者按:两者都与GNU sed只有。


查看完整回答
反对 回复 2019-07-02
  • 3 回答
  • 0 关注
  • 1172 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信