搜索并替换linux目录的所有文件中的文本

Yar*_*rin 28 linux bash grep text sed

我有一个网站目录,我需要将所有硬编码链接从一个域更改为另一个域.寻找单个(grep?sed?)bash命令,它允许我更改目录中所有文件中出现的所有文本?

Mic*_*eyn 47

以下将这样做:

sed -i 's/old_link/new_link/g' file...
Run Code Online (Sandbox Code Playgroud)

不要忘记使用反斜杠转义链接地址中的任何斜杠,点和任何其他正则表达式特殊字符.

  • 您可以在`sed`命令中使用替代分隔符,以避免必须进行一些转义:`sed -i's | old/with/slashes | new/with/slashes/g'` (7认同)
  • 我正在使用内置于OSX中的'sed',我不得不使用"sed -i .backup的/ old/new/g'*" - 即我必须添加'备份后缀'值'-i'标志,用于在sed修改文件时备份文件.之后留下了这些,所以我不得不做一个'发现'来删除它们. (3认同)
  • 看[this answer](http://stackoverflow.com/a/6759339/892648)进行递归替换和省略目录 (2认同)