grep递归独占搜索

时间:2012-07-13 04:58:39

标签: search grep debian

我有文字我想以mydir/递归搜索。我通常会输入grep -r "text to find" mydir/",但如果我想搜索除特定文件以外的所有文件,我会键入什么?

例如,我不想搜索文件“myfile.txt”,但它包含在目录中。

我会输入什么?

2 个答案:

答案 0 :(得分:3)

一种快捷的方法是使用BASH的扩展文件通配。

有一个扩展的否定glob,您可以按如下方式使用:

shopt -s extglob
grep -r "text to find" !(myfile.txt)

另一种更灵活的方法是使用findxargs的组合。使用find仅过滤掉您想要的文件,并xargs将它们作为参数传递给grep。

以下类似的东西可以起作用:

find -type f -not -name myfile.txt | xargs grep "text to find"

答案 1 :(得分:2)

您可以使用以下命令排除文件:

grep -r --exclude="myfile.txt" "text to find"