我有文字我想以mydir/
递归搜索。我通常会输入grep -r "text to find" mydir/"
,但如果我想搜索除特定文件以外的所有文件,我会键入什么?
例如,我不想搜索文件“myfile.txt”,但它包含在目录中。
我会输入什么?
答案 0 :(得分:3)
一种快捷的方法是使用BASH的扩展文件通配。
有一个扩展的否定glob,您可以按如下方式使用:
shopt -s extglob
grep -r "text to find" !(myfile.txt)
另一种更灵活的方法是使用find
和xargs
的组合。使用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"