command-line - 查找所有文件,然后 grep 查找这些名称的所有文件

标签 command-line grep find

我想在一个目录上运行一个命令来打印该目录中的所有文件,然后递归地grep所有文件查找找到的文件名,基本上是为了检查并查看X文件是否用于目录中的任何 PHPHTML 文件。如果发现 X 文件不在任何文件中,则打印它的名称。

到目前为止,我不知道如何将我所拥有的内容传递给 grep 然后打印这些内容而没有结果。

find . -path ./images -prune -o -name '*' -type f -print | sed 's!.*/!!'

我可以这样使用exec:

find . -path ./images -prune -o -name '*' -type f -exec grep -R '{}' ./* \;

但是我无法 sed 删除 find 给我的文件名前面的 ./dir/etc/

令我困惑的查询的另一部分是我不知道如何获取 grep 或 find 打印那些在 grep 中没有结果的内容。

最佳答案

我认为这样的事情可能会有所帮助:

$ find . -type f -printf "%f\n" | grep --color -R -f - .

在此示例中,-printf "%f\n" 导致 find 仅返回文件名,而不返回路径。结果是一个用作 grep 搜索模式的文件,并使用 -f - 作为 stdin 上的输入传递。 -R 告诉 grep 递归搜索(您已经知道)。 --color 让事情看起来很漂亮。

要仅列出匹配的文件名,请使用grep -l -R -f - .。然后,要查找没有结果的文件,您必须查找不在该列表中的文件。

This post可能会帮助你。

关于command-line - 查找所有文件,然后 grep 查找这些名称的所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13962105/

相关文章:

c++ - 如何提取for循环体?

regex - 或查找正则表达式中的条件

perl - < UNIX 中的运算符,传递给 Perl 脚本

Javascript 通过对象键像 SQL 一样在对象数组中搜索

sql-server - 通过 xp_cmdshell 获取文件内容

grep - 如何grep在特定模式上方和下方的线条

linux - 使用目录结构 bash 脚本备份文件

linux - 查找子目录并删除不包含特定字符串的文件 LINUX

Perl 根据命令行参数设置文件句柄

java - 在Java中使用cmd复制文件的问题