如何在linux命令行中替换多个文件中的字符串

新手上路,请多包涵

我需要替换文件夹中很多文件中的一个字符串,只有 ssh 访问服务器。我怎样才能做到这一点?

原文由 mridul4c 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 363
2 个回答
cd /path/to/your/folder
sed -i 's/foo/bar/g' *

出现的“foo”将替换为“bar”。

在像 macOS 这样的 BSD 系统上,您需要提供一个备份扩展,比如 -i '.bak' 或者按照手册页的“风险损坏或部分内容”。

 cd /path/to/your/folder
sed -i '.bak' 's/foo/bar/g' *

原文由 kev 发布,翻译遵循 CC BY-SA 4.0 许可协议

类似于 Kaspar 的答案,但使用 g 标志替换一行上的所有事件。

 find ./ -type f -exec sed -i 's/old_string/new_string/g' {} \;

对于全局不区分大小写:

 find ./ -type f -exec sed -i 's/old_string/new_string/gI' {} \;

原文由 Céline Aussourd 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题