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

问题描述 投票:0回答:1

我正在考虑替换Linux中的字符串,其想法是找到所有以abc作为字符串的文件,并在目录和所有子目录中替换为xyz。

你能建议我如何使用 Linux shell 脚本来做到这一点吗

linux shell sed grep find
1个回答
1
投票

您可以使用 find 和 sed,因为 sed 只会影响具有此字符串的文件。如果文件没有该字符串,无论如何运行替换都没有缺点:

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