我正在尝试替换目录中所有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:没有这样的文件或目录
请帮忙!
答案 0 :(得分:0)
您可以避免使用xargs
并执行find
中的所有操作,例如:
find . -name "*.php" -exec sed -i '' 's/pattern/replacement/g' {} +
在BSD上,MAC通过将空字符串传递给sed的-i args将不会创建备份sed -i ''