我想在linux中替换一个字符串,这个想法是找到所有以abc作为字符串的文件,并在一个目录和所有子目录中替换为xyz。您能否建议我如何使用Linux shell脚本实现这一点
0ve6wy6x1#
你可以使用find和sed,因为sed只会影响包含这个字符串的文件。如果一个文件没有这个字符串,那么运行replace也没有什么坏处:
find -type f -exec sed -i 's/abc/xyzg' {} +
-type f
-exec
sed -i
s/abc/xyz/g
{} +
1条答案
按热度按时间0ve6wy6x1#
你可以使用find和sed,因为sed只会影响包含这个字符串的文件。如果一个文件没有这个字符串,那么运行replace也没有什么坏处:
-type f
仅查找文件(不包括目录)-exec
对找到的每个文件执行...sed -i
就地编辑文件s/abc/xyz/g
将所有行中出现的所有“abc”替换为“xyz”{} +
一次使用多个文件名调用“exec”命令,而不是每个文件调用一次