5

我使用以下 find 命令来查找并显示所有具有输入文本模式的文件。

寻找 。-type f -print|xargs grep -n "模式"

我有很多项目文件夹,每个文件夹都有自己的名为“Makefile”的makefile。(没有文件扩展名,只有“Makefile”)

如何使用上述命令仅在我所有项目文件夹中名为 Makefile 的文件中搜索特定模式?

-广告。

4

7 回答 7

7

-print不是必需的(至少由 GNUfind实现)。-name参数允许指定文件名模式。因此命令将是:

find . -name Makefile | xargs grep pattern

于 2009-04-07T18:35:35.743 回答
2

如果目录路径中有空格或奇数字符,则需要使用以空字符结尾的方法:

 find . -name Makefile -print0 | xargs -0 grep pattern
于 2009-04-07T18:37:55.190 回答
1
find . -type f -name 'Makefile' | xargs egrep -n "pattern"

如果路径很长,请使用 egrep

重复:这个

于 2009-04-07T18:36:05.257 回答
1

您可以通过使用来避免xargs使用-exec

find . -type f -name 'Makefile' -exec egrep -Hn "pattern" {} \;

-Honegrep输出匹配文件的完整路径。

于 2009-04-07T18:45:18.683 回答
1

grep -R "字符串" /路径

请找到此链接 http://rulariteducation.blogspot.in/2016/03/how-to-check-particluar-string-in-linux.html

于 2016-03-17T12:25:04.853 回答
0

您可以使用 ff 命令,即 ff -p .format。例如 ff -p *.txt

于 2009-10-08T16:02:22.603 回答
0

查找占用大磁盘空间的大文件

我们需要组合多个命令。

find . -type f | xargs du -sk | sort -n | tail;
于 2014-01-23T13:50:21.560 回答