如何全局替换不以特定模式开头的行中的字符串

44 sed

我想使用sed全局用字符串bar替换字符串foo.这应仅适用于不以字符串## Input开头的行.

我无法让它发挥作用.我尝试过这样的事情,但达到了我不确定我是否知道自己在做什么的地步:

sed -i '/^##Input/ s/foo/bar/g' myfile
Run Code Online (Sandbox Code Playgroud)

请帮忙!

Pau*_*ce. 73

你只需要使用!以下方法否定匹配:

sed -i '/^##Input/! s/foo/bar/g' myfile
Run Code Online (Sandbox Code Playgroud)

  • 这太有用了!我没有意识到您可以在运行搜索和替换该行之前为 sed 提供与该行匹配的输入。这对我帮助很大! (3认同)