gpt4 book ai didi

regex - 更改文件夹中的所有匹配项

转载 作者:IT老高 更新时间:2023-10-28 12:26:21 25 4
gpt4 key购买 nike

我需要对文件夹(及其子文件夹)中的所有文件进行正则表达式查找和替换。执行此操作的 linux shell 命令是什么?

例如,我想对所有文件运行此命令,并用新的替换文本覆盖旧文件。

sed 's/old text/new text/g' 

最佳答案

仅使用 sed 是无法做到的。您至少需要同时使用 find 实用程序:

find . -type f -exec sed -i.bak "s/foo/bar/g" {} \;

此命令将为每个更改的文件创建一个 .bak 文件。

注意事项:

  • sed 命令的 -i 参数是 GNU 扩展,因此,如果您使用 BSD 的 sed 运行此命令,您将需要将输出重定向到一个新文件,然后重命名它。
  • find 实用程序没有在旧的 UNIX 机器中实现 -exec 参数,因此,您需要使用 | xargs 代替。

关于regex - 更改文件夹中的所有匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/905144/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com