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