盐与黑胡椒

导航

【命令】查找含有某字符串的所有文件

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字符串的文件


参考资料

Linux查找含有某字符串的所有文件

posted on 2018-11-16 17:56  盐与黑胡椒  阅读(181)  评论(0编辑  收藏  举报