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

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

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


This is Great Wonderful Coding Technique.. I am impressing Thanks..

Netsuite Partners


ack-grep 自动忽略repository和binary的folder。搜索source code非常棒。


example:
grep -rn your_dir | grep -v your_don't_want_to_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}

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|$'

README.md
43:+ 每个命令的cheat,尽量不超过终端全屏下的一个屏幕。知识点的cheat原则上不限长度,但每个主题都尽量简短,方便ack或者grep查找。

【热门文章】
【热门文章】