shell-script – 如何在目录及其子目录中的所有php文件中搜索和替换文本

我正在寻找一个shell脚本,递归遍历目录中的所有.php文件并执行搜索&替换特定的文本模式.

搜索模式很长(> 5000个字符),因此为方便起见,它可能会保存在另一个文本文件中.它还包含正斜杠字符.

编辑:
 我想我想出了第一部分:

find . -name "*.php"

但那我该怎么搜索&替换那些文件?

最佳答案
它可以通过sed和xargs的良好组合轻松完成.

find . -name "*.php" | xargs -n 1 echo

会告诉你xargs的力量.

之后,在示例文件上,您可以使用就地更改(-i)或备份更改(-i.bak)来测试正则表达式.如果您的模式/替换已经有一个,您还可以使用其他字符替换’/’.

最后,它应该看起来像:

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

转载注明原文:shell-script – 如何在目录及其子目录中的所有php文件中搜索和替换文本 - 代码日志