分享

grep 搜索目录时,怎样排除某些目录?

 灬木木的花灬 2015-09-15

使用 grep 搜索目录时,会将一些隐藏目录也给搜进去,比如 .git 目录。如何在使用 grep 时排除这些目录呢?


    使用 --exclude-dir 选项。

语法

--exclude-dir=DIR
Exclude directories matching the pattern DIR from recursive searches.

单个目录示例

grep -E "http"  ./ -R --exclude-dir=.git 

多个目录示例

grep -E "http"  . -R --exclude-dir={.git,res,bin}

多个文件示例

附赠一个,排除扩展名为 java 和 js 的文件

grep -E "http"  . -R --exclude=*.{java,js}
0
秦书磊 129 2014年12月08日 回答

grep太罗嗦,用ack吧。源码搜索的不二之选~默认排除各种版本库,可以指定多种源文件类型。

─(~/.cheat)(ruby-1.9.3-p547@rails3.1.1)────────────────────────────────────────────────────────────────────(shuleiqin@shuleiqin-F8Vr:pts/0)─┐
└─(23:14:07 on master)──> ls                                                                                                  ──(一,12月08)─┘
alias  bash  crontab  DirectoryArchitecture  echo    Git   kill  MachineProperties  passwd  Python     Regex     tree     usermod  Vi
awk    Bash  df       du                     export  grep  less  markdown           python  README.md  shutdown  useradd  vi       zip
┌─(~/.cheat)(ruby-1.9.3-p547@rails3.1.1)────────────────────────────────────────────────────────────────────(shuleiqin@shuleiqin-F8Vr:pts/0)─┐
└─(23:14:16 on master)──> ack grep                                                                                             ──(一,12月08)─┘

grep
2:grep pattern file
5:grep -i pattern file
7:# Recursively grep for string <pattern> in folder:
8:grep -R pattern folder
11:grep -Rl {search} {path}
14:grep -Rli {search} {path}
17:grep -f pattern_file file
20:grep -v pattern file
22:# You can grep with regular expressions
23:grep "^00" file  #Match lines starting with 00
24:grep -E "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" file  #Find IP add
28:grep -rnw 'directory' -e "pattern"
30:# Exclude grep from your grepped output of ps.
32:ps aux | grep '[h]ttpd'
35:ps aux | grep -E --color 'bash

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多