grep只有文本文件

find . -type f | xargs file | grep text | cut -d':' -f1 | xargs grep -l "TEXTSEARCH" {} 

这是一个很好的解决scheme? 用于仅在文本文件中recursion地查找TEXTSEARCH

2 Solutions collect form web for “grep只有文本文件”

您可以在grep使用-r (recursion)和-I (忽略二进制)选项:

 $ grep -rI "TEXTSEARCH" . 
  • -I处理一个二进制文件,就好像它不包含匹配的数据; 这相当于--binary-files=without-match选项。
  • -rrecursion读取每个目录下的所有文件; 这相当于-d recurse选项。

另一个比kevs更不优雅的解决scheme,就是在一起查找链式执行命令,而不使用xargs和cut:

 find . -type f -exec bash -c "file -bi {} | grep -q text" \; -exec grep TEXTSEARCH {} ";" 
  • 如何统计目录中所有文件中单词的出现次数?
  • 使用grep来查找文件中的内容,如果匹配,就移动它们
  • Linux命令行全局search和replace
  • Windowsrecursiongrep命令行
  • 如何从bash grep输出中删除最后一个字符
  • 如何从git grepsearch中排除某些目录/文件
  • 在匹配行之前显示文件名(grep)
  • 如何对目录中的所有文件执行grep操作
  • grep一个文件,但显示几条周边线?
  • 在退出脚本之前等待后台进程完成
  • 使用正则expression式validationIPv4地址