shell 在目录和子目录内的所有文件中查找字符串并替换

kfgdxczn  于 2022-11-16  发布在  Shell
关注(0)|答案(1)|浏览(163)

我想在linux中替换一个字符串,这个想法是找到所有以abc作为字符串的文件,并在一个目录和所有子目录中替换为xyz。
您能否建议我如何使用Linux shell脚本实现这一点

0ve6wy6x

0ve6wy6x1#

你可以使用find和sed,因为sed只会影响包含这个字符串的文件。如果一个文件没有这个字符串,那么运行replace也没有什么坏处:

find -type f -exec sed -i 's/abc/xyzg' {} +
  • -type f仅查找文件(不包括目录)
  • -exec对找到的每个文件执行...
  • sed -i就地编辑文件
  • s/abc/xyz/g将所有行中出现的所有“abc”替换为“xyz”
  • {} +一次使用多个文件名调用“exec”命令,而不是每个文件调用一次

相关问题