搜索并替换目录中所有php文件中的文本及其子目录

时间:2018-05-26 11:40:24

标签: bash shell

我正在尝试替换目录中所有PHP文件中的字符串及其子目录!

所以为了做到这一点,我创建了2个文本文件,即“pattern.txt”(包含要替换的字符串)和“replacement.txt”(包含替换字符串)

我在Windows 10上启动了我的gitBash Shell并输入以下命令

pattern=`cat /path/to/pattern`; replacement=`cat /path/to/replacement`
find . -name "*.php" | xargs -n 1 sed -i -e 's|$pattern|$replacement|g'

但执行第二个命令后出现错误,即

sed:无法读取./admin:没有这样的文件或目录

请帮忙!

1 个答案:

答案 0 :(得分:0)

您可以避免使用xargs并执行find中的所有操作,例如:

find . -name "*.php" -exec sed -i '' 's/pattern/replacement/g' {} +

在BSD上,MAC通过将空字符串传递给sed的-i args将不会创建备份sed -i ''