查找包含certian字符串的多个文件,并列出不包含该字符串的文件

时间:2019-08-08 07:51:34

标签: grep

在构建站点检查器的过程中,我遇到了一个问题,如果代码中包含某些字符串,则客户端需要检查其所有页面中是否包含某些字符串,然后列出尚未包含该代码的文件。

尝试了多个grep命令,但没有成功。 -v应该导出结果的反向匹配,但这不会发生。目前,我缺少代码告诉grep仅在所有子文件夹中的特定文件(例如文件名code.php)中进行搜索的部分。

使用当前代码,它会搜索所有文件,甚至是不必要的文件。

grep -vrn '.' -e "SRING" > list.txt

我想导出一个文件列表(最好是仅检查具有相同名称的所有子文件夹中的文件),而不会引起我的麻烦。

1 个答案:

答案 0 :(得分:0)

grep -c STRING files将为您提供每个文件中STRING的行数。

您可以使用-m1在第一场比赛后停止比赛。

您可以通过管道传输sed来获取匹配项为零的文件:

grep -cm1 STRING files | sed -n '/:0$/s/:0//p'

每行可为您提供一个文件。

您可以将其传送到xargs,以将其合并为单行列表。

如果您的STRING只是正则表达式而不是正则表达式,则可以将-F标志与grep一起使用,以指定它是固定的字符串,这样也可以加快速度。所以也许...

grep -Fcm1 STRING files | sed -n '/:0$/s/:0//p' > list.txt

...在这种情况下