grep文件用`<! - ?`(不是`<?php`) - >

时间:2012-09-22 07:10:15

标签: regex grep

只是一个简单的问题。如何(递归地)查找包含<?(而不是<?php)的所有文件?

谢谢! 凯文

3 个答案:

答案 0 :(得分:3)

使用--perl-regexp标记,这样您就可以使用功能更强大的perl兼容正则表达式和前瞻阴影:

grep -Prl '<\?(?!php)' .

答案 1 :(得分:0)

你想要的正则表达式是<\?(?!php)

答案 2 :(得分:0)

 grep -r \<\? SomeDir

将捕获<?的所有内容(您可以使用fgrep

然后,你想要删除所有出现的PHP。你可以使用

grep -r \<\? SomeDir | grep -v php

这应该给你一个足够好的近似值(但是有点不对,因为它会跳过包含<?php的行不在一起。您可以使用grepawk替换第二个cut以打印文件名。

您也可以使用

grep -rl `<\?[^p][^h]`