linux只在文本文件中查找字符串

linux只在文本文件中查找字符串

 

通用

如果不分文件类型,那么查找命令是:

grep -r "mytext" [folder]

 

但是上面的这个命令会搜索所有的文件,包括二进制文件,这不是我们所希望的,通常我们搜索字符串都是在文本文件中,所以要把命令调整:

find -type f -exec grep "mytext" -Il . {} \;

上面是linux的命令格式,如果是在mac下面有稍许的不同:

find . -type f -exec grep "mytext" -Il {} \;

上面的命令式结合find命令,将find的结果和grep结合在最后找到所有含有 mytext这个字符串的文件。

需要注意的是{}和\之间是有空格的,并且最后的分号不可以少掉,-I后面的是L的小写,不是1 2 3的1.

这里的-I是告诉grep忽略所有的二进制文件。

 

某一类型的文件

例如只在 .cpp文件中

find -type f -name *.cpp -exec grep "mytxt" -Il . {} \;

如果是.txt,

find -type f -name *.txt -exec grep "mytxt" -Il . {} \;

 

完。

版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.

    分享到:

Leave a Reply

Your email address will not be published. Required fields are marked *