【命令】查找含有某字符串的所有文件
grep
如果你想在当前目录下 查找"hello,world!"字符串,可以这样:
$ grep -rn "hello, world!" *
-r 递归查找
-n 显示行号
其他参数
-i 忽略大小写
-R 查找所有文件包含子目录
-l 只列出匹配的文件名
-L 列出不匹配的文件名
-w 只匹配整个单词,而不是字符串的一部分
-C number 匹配的上下文分别显示[number]行
grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行
grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。
用于搜索的特殊符号:
\< 和 \> 分别标注单词的开始与结尾。
- 例如:
- grep man * 会匹配 ‘Batman’、‘manic’、‘man’等,
- grep '\< man' * 匹配‘manic’和‘man’,但不是‘Batman’,
- grep '\< man\> ' 只匹配‘man’,而不是‘Batman’或‘manic’等其他的字符串。
'^':指匹配的字符串在行首,
'$':指匹配的字符串在行尾,
xargs配合grep查找
find -type f -name '*.cpp' | xargs grep 'GroupRecord'
上面这命令的意思是查找当前路径下所有.cpp后缀且包含GroupRecord字符串的文件