linux - 在子目录中搜索相同的文件并替换所有子目录中的字符串

标签 linux shell replace sed find

你好,我是 shell 脚本的菜鸟, 我想创建一个 findandfix.sh 以在 FOLDER1 内的所有目录中搜索名为 file.xml 的所有文件,并替换所有文件中以 <linex= 开头的特定行与 <activate=option1,option2

  FOLDER1
      |
      |---->FOLDER2
      |           |->file.xml
      |
      |---->FOLDER3
      |           |->file.xml
      |
      |---->FOLDER4
      |           |->file.xml
      |
      |---->FOLDER5
                  |->file.xml

我认为这需要使用 findsed但我不知道如何将它们组合在一起来完成这项工作。

最佳答案

如果我理解你的话:

find /system/home/user/folder1 -name 'file.xml' -exec sed -i 's@linex=@activate=option1,option2@' {} \;

测试前做好备份,或者去掉-i开关

关于linux - 在子目录中搜索相同的文件并替换所有子目录中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40163847/

相关文章:

linux - 重新安装Ubuntu

linux - 批处理模式 SSH 给出错误 "TERM environment variable not set"

linux - Comet 和 node.js - 我们期望在 EC2 服务器上有多少同时连接?

shell - "<inp somecommand"和 "somecommand <inp"和有什么区别?

c - 基本 shell - chdir() 之后的 ls 命令

file - 如何使用 Go 字节有效地替换两个字符串分隔符之间出现的字符串?

linux - 如何在linux中绘制二维图

linux - 在 Unix Shell 脚本中从字符串中删除动态后缀模式

java - 任何人都可以建议一个更快的替代这个正则表达式算法吗?

regex - Perl:从当前位置替换模式直到行尾