Press "Enter" to skip to content

Linux 查找目录中包含特定字符串的文件

使用grep命令。

grep -rnw '/path/to/somewhere/' -e 'pattern'
  • -r or -R 表示递归查找
  • -n 显示查找到字符串所在文件行号
  • -w 表示完整匹配
  • -l (lower-case L) 只显示匹配的文件名

也可以添加下面这些参数, --exclude--include--exclude-dir 来提高检索效率

  • 下面这个例子只会检索文件扩展名为 .c or .h 的文件:
grep --include=\*.{c,h} -rnw '/path/to/somewhere/' -e "pattern"
  • 下面这个例子将忽略检索所有文件扩展名为 .o 的文件:
grep --exclude=\*.o -rnw '/path/to/somewhere/' -e "pattern"
  • 对于目录,可以使用–exclude-dir参数排除一个或多个目录。例如,这将排除目录 dir1/、dir2/以及所有与*.dst匹配的dir/
grep --exclude-dir={dir1,dir2,*.dst} -rnw '/path/to/somewhere/' -e "pattern"

更多的选项,参考 man grep

参考资料:https://stackoverflow.com/questions/16956810/how-do-i-find-all-files-containing-specific-text-on-linux

发表评论

邮箱地址不会被公开。 必填项已用*标注