对,需要一个脚本/命令来列出所有包含模式/字符串的.php 文件。
它应该查看当前目录及其所有子目录。
如果它显示行号,例如:
my new command
./www/index.php Line 12
./www/lib/config.php Line 123
另外,是否可以搜索并替换每个文件中具有此模式的行?
答案1
grep
可以自行完成此操作:
grep -rn --include='*.php' "pattern" .
答案2
查找 . -name '*.php' -print0 | xargs -0 grep -n “模式”
答案3
我认为下面将进行搜索和替换,但请确保您先测试这一点,因为我还没有:-)
find . -type f -name '*.php' -print0 | xargs -0 sed -i '.bak' -e 's/foo/bar/g'
这将在编辑每个文件之前通过创建 filename.php.bak 文件对其进行备份,并且将更新所有文件的时间戳。它将“foo”替换为“bar”。这对于包含空格的文件名也应该是安全的。
答案4
这不能代替模式吗?
查找 . -name "*.php" -exec sed -i".bak" 's/pattern/replace/g' {} \;
但非常危险!一定要保持图案的独特性。:-)