linux查找目录下的所有文件中是否含有某个字符串
grep -rn "要查找的字符串" *
-r 是递归查找
-n 是显示行号
* : 表示当前目录所有文件,也可以是某个文件名。
grep命令的常用格式为:grep [选项] ”模式“ [文件]。
模式部分:
1、直接输入要匹配的字符串,这个可以用fgrep(fast grep)代替来提高查找速度,比如我要匹配一下hello.c文件中printf的个数:fgrep -c "printf" hello.c。
2、使用基本正则表达式。
扩展资料:
查找字符串的第二种方法:
find .|xargs grep “要查找的字符串”
find . -exec grep “要查找的字符串” {} \;
find / -name "要查找的字符串"
find / -name "要查找的字符串"
用grep遍历目标目录下的所有文件
比如:你的字符是 “some_code” ,文件夹名字是 YOUR_DIR
grep -R "some_code" YOUR_DIR
如果你不需要显示内容,只需要含有某个字符的文件:
grep -lR "some_code" YOUR_DIR
附录:
grep -R 和 -l 参数
-R, -r, --recursive
递归地读每一目录下的所有文件。这样做和 -d recurse 选项等价。
-l, --files-with-matches
禁止通常的输出;作为替代,打印出每个在通常情况下会产生输出的输入文件的名字。对每个文件的扫描在遇到第一个匹配的时候就会停止。
ps:
如果目录下有二进制文件,也可能匹配到。
grep -r . -e main
解释:
-r recursive,
-e pattern.