努力寻找答案......我有一个网站上有一堆PHP文件,而且某个地方在打开php标签之前有一个空行
所以我想要做的是首先尝试在第一行是空行的目录中查找所有文件。
一个命令的加分点,它允许我在打开php标记之前搜索目录中有一个或多个空行的所有文件。
<?php
寻找可以执行此操作的bash命令...
此外,还需要递归搜索该目录中的所有目录。
在Linux上.....谢谢!
更新: 尝试了John1024的答案中的建议,这个带有以下代码的文件正在结果中列出
<?php
/**
* @file
* Defines custom functionality for ...
*/
答案 0 :(得分:2)
perl oneliner
perl -0777 -ne 'print "$ARGV\n" if /^( *\n)+<\?php/' *
以递归方式查看目录:
find . -type f -exec perl -0777 -ne 'print "$ARGV\n" if /^( *\n)+<\?php/' {} +
对于谁来到这里:
-0777
slurps每个文件,使这项任务相当简单。
答案 1 :(得分:1)
&#34;在打开php标记之前搜索目录中有一个或多个空行的所有文件。&#34;
要查找当前目录中包含<?php
的行之前有一个或多个空行的所有文件,请尝试:
awk -v last=1 '/<?php/ && !last {print FILENAME; last=1; nextfile} {last=$0}' *
工作原理:
-v last=1
将awk变量last
设置为true(1)。
/<?php/ && !last {print FILENAME; last=1; nextfile}
如果当前行包含字符串<?php
且最后一行(上一行)为空,则打印文件名,将last
重置为true,然后从下一个文件开始。
find . -type f -exec awk -v last=1 '/<?php/ && !last {print FILENAME; last=1; nextfile} {last=$0}' {} +