Grep 检查以 EOL 开头或结尾的 PHP 文件

Grep check PHP files starting or ending with EOL

提问人:Berry M. 提问时间:9/29/2016 更新时间:12/8/2016 访问量:173

问:

所以,我只是花了一个小时浏览很多php文件,以便在关闭后>EOL。我尝试了正则表达式匹配它以使其更容易,但是对于一个大项目,最终仍然为我提供了 450+ 的结果。那个,问题原来是开盘前的停产......\?>(\n){1,}$<?php

所以,我想一定有更好的方法。我在想 GREP 寻找以 EOL 开头或结尾的文件。

那么解决这些问题的最佳方法是什么呢?

php grep eof eol

评论

1赞 Duane Lortie 9/29/2016
什么问题?什么错误?如果是这样,错误通常会显示导致输出的文件和行。OUTPUT ALREADY STARTED?
0赞 Berry M. 9/29/2016
在 ?> 之后或 <?php 之前的 EOL 将导致它们出现在所有输出之前(在 <doctype> 之上。例如,这会导致在生成图像、csv 或 xml 输出时出现问题。没有给出错误。
0赞 Hackerman 9/29/2016
您可以匹配 ...因此,您可以例如:或EOL$grep '<?php$' *grep '$?>' *
0赞 Duane Lortie 9/29/2016
@Berry M 对,所以也许你启用了输出缓冲?,因为如果没有它,你会得到错误,指出是什么文件导致了输出,是的,它可能在文件的开头或结尾,但知道要查看的文件名是最大的障碍。在那之后,修复是微不足道的。
1赞 Zimmi 9/29/2016
提示,部分解决方案:您可以使用.这将打印出所有带有“<?php”的行和前面的行。如果前面的行显示“--”,则表示前面没有行,-- 是组分隔符。-r = 递归,-n = 显示行号,-Bx = 同时显示 x 行之前。对于结束标签,它变为 .这里 -Ax = show lines After.grep -rn -B1 "<?php"grep -rn -A1 "?>"

答:

2赞 Berry M. 12/8/2016 #1

我最终在 Eclipse 中使用了正则表达式并搜索了所有.php文件。

我跑了一下,发现我在开盘前有两个 EOL。/(^<?\s{1,}<\?php|\?>\s{1,}$)/g<?php

此正则表达式也可以与 grep 一起使用。