在 *nix, 下,如何在目录中的文件中查找字符串?

分享于 

2分钟阅读

电脑

 

问题:

我使用了 for,并且每天使用一个终端 模拟器 来完成许多任务。

我想知道如何在特定目录中查找一个字符串或者一个子字符串。

如果我知道包含目标子字符串的文件,我只需要 cat 文件并通过grep管理它,因这里:


cat file | grep mysubstring



但是在这种情况下,讨厌的子字符串可以在已知目录的任何地方。

如何查找子字符串?


回答 1:

使用 shell 通配符:

 
grep mysubstring *



 

如果要搜索子目录,请使用 -r 选项将它的递归到其中:


grep -r myssubstring. 




回答 2:


find -type f | xargs grep mysubstring



这些命令(。findxargsgrep ) 有很多选项,因此你可以对该操作进行基本调整。


回答 3:

假设要查找所有包含目录"~/项目"下文本"维基"的python 代码文件,下面是脚本:


grep -lir"wiki" ~/projects/**/*.py



根据具体要求调整脚本。


回答 4:

不管你怎么做,不要把文件放到grep里。 你的原始版本


cat file | grep mysubstring



更正确地做


grep mysubstring file




回答 5:

如果你不需要在批处理模式下做,你可以安装午夜指挥官( mc ),它可以在文件中搜索字符串。


回答 6:

如果要从"当前"目录中查找具有特定字符串递归的所有文件,请使用:


find. -type f -exec grep -l mysubstring {} ;



( 应该在大多数 *nix') 上工作



文件  str  DIR  FIND  String  
相关文章