我有一种预感,我可能应该使用 ack 或 egrep 来代替,但是我应该使用什么来基本上寻找
<?
在文件的开头?我正在尝试查找所有包含 php short open 标记的文件,因为我将一堆旧脚本迁移到具有最新 php 5 的相对较新的服务器上。
我知道正则表达式可能是'/^<\?\n/'
我有一种预感,我可能应该使用 ack 或 egrep 来代替,但是我应该使用什么来基本上寻找
<?
在文件的开头?我正在尝试查找所有包含 php short open 标记的文件,因为我将一堆旧脚本迁移到具有最新 php 5 的相对较新的服务器上。
我知道正则表达式可能是'/^&l
我使用 RTFM 并最终使用:
grep -RlIP '^<\?\n' *
P 参数启用完全 perl 兼容的正则表达式。
find . -name "*.php" | xargs grep -nHo "<?[^p^x]"
^x 排除 xml 开始标记
如果您担心 Windows 行结尾,只需添加\r?
.
grep '^<?$' filename
不知道这是否正确显示。应该
grep ' ^ < ? $ ' 文件名
你的意思是文字“反斜杠n”还是换行符?
对于前者:
grep '^<?\\n' [files]
对于后者:
grep '^<?$' [files]
请注意,grep 将搜索所有行,因此如果您想在文件的开头找到匹配项,您需要将每个文件过滤到其第一行,或者让 grep 打印出行号然后只查找对于第 1 行匹配。