使用 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查找。