新浪博客

Linux下find一次查找多个指定文件或者排除某类文件,在 GREP 中匹配多个关键字的方法
(1)Linux下find一次查找多个指定文件:
查找a.html和b.html
  1. find . -name 'a.html' -name 'b.html'

find . -regex '.*\.txt\|.*\.doc\|.*\.mp3'
  1. find . -regex '.*\.txt\|.*\.doc\|.*\.mp3'
  2. ./a.txt
  3. ./a.doc
  4. ./a.mp3

(2)排除某些文件类型:
排除目录下所有以html结尾的文件:
  1. find . -type f ! -name '*.html'

  1. find . -type f ! -name '*.html'
  2. ./ge.bak.02.09
  • ./ge.html.changed.by.jack
  • ./a.txt
  • ./a.doc
  • ./a.mp3

  • (3)排除多种文件类型的示例:
  1. find . -type f ! -name '*.html' -type f ! -name '*.php' -type f ! -name '*.svn-base' -type f ! -name '*.js' -type f ! -name '*.gif' -type f ! -name '*.png' -type f ! -name '*.cpp' -type f ! -name '*.h' -type f ! -name '*.o' -type f ! -name '*.jpg' -type f ! -name '*.so' -type f ! -name '*.bak' -type f ! -name '*.log'

(3)在 GREP 中匹配多个关键字的方法:
grep查找多个数字的文件:
-r 递归,-E:正则 -l:只显示文件名
  1. root@116.255.139.240:~/a# grep -r -E '0341028|100081|10086|10001' *
  2. a.txt:100081
  3. b.txt:10086
  4. c/cc.txt:0341028
  5. c/cc.txt:100081
  6. c/cc.txt:10086
  7. c/cc.txt:10001
  8. c.txt:10001
  9. d.txt:0341028

  1. grep -r -E -l '0341028|100081|10086|10001' *
  2. a.txt
  3. b.txt
  4. c/cc.txt
  5. c.txt
  6. d.txt

多种类型文件示例:
view plainprint?
  1. find . -name '*.html' -o -name '*.js'|xargs grep -r 'BusiTree'

用Awk:
view plainprint?
  1. find . -name '*.php'|awk '{print 'cat ' $0 ' |grep -H dbsys.mxxxx.justwinit.cn'}'|sh

参考本站:http://justwinit.cn/post/714/

我的更多文章

下载客户端阅读体验更佳

APP专享