只是一个简单的问题。我怎样才能(递归地)找到所有包含<?(而不是<?php)的文件?
谢谢!凯文
使用该--perl-regexp标志,以便您可以使用更强大的 perl 兼容正则表达式和负前瞻:
grep -Prl '<\?(?!php)' .
好
grep -r \<\? SomeDir
将捕获所有出现的<?(并且您可以使用fgrep)
然后,您要删除所有出现的 php.ini 文件。你可能会使用
grep -r \<\? SomeDir | grep -v php
这应该给你一个足够好的近似值(但有点错误,因为它会跳过包含 <? 而php不是一起的行)。您可以将第二个替换为grepaawk或 acut以打印文件名。
你也可以使用
grep -rl `<\?[^p][^h]`
你想要的正则表达式是<\?(?!php)