家里的电脑很烂,没有Linux.只能上班的时候继续了。
今天重新学下grep.
grep找到匹配的行.
-A NUM, --after-context=NUM 当找到匹配行的时候,打印匹配行下面的行,行数由NUM指定.
-a, --text 像文本一样处理2进制文件.和--binary-files=text等效
-B NUM, --before-context=NUM 当找到匹配行的时候,打印匹配行上面的行,行数由NUM指定.
-C NUM, --context=NUM 相当与-A 和-B的组合使用,打印匹配行前后的NUM行,以及匹配行.
-b, --byte-offset 显示匹配文字在文件里的字节偏移
--binary-files=TYPE grep 命令默认会去从2进制文件里去匹配的,当找到匹配的文字,会显示一个2进制文件匹配的字样,如果加上without-match 则不会去匹配2进制,--binary-files=without-match 等效于-I(大i) 如果为text则等效于-a会去匹配2进制文件
--colour[=WHEN], --color[=WHEN] 该参数会指定有颜色来显示匹配的文字.
-c, --count 来显示查找的每个文件有几个匹配的数字. -v则显示每个文件的未匹配的.
-D ACTION, --devices=ACTION 如果文件为一个设备,比如FIFO,或者socket,用ACTION去处理它.默认ACTION为read,意味着这些设备也要象普通文件一样去处理.如果ACTION为skip的话,那么这些设备就会被跳过.
-d ACTION, --directories=ACTION 如果文件为一个目录,则用ACTION指定的方式去处理该目录,默认ACTION为read,意味着目录的处理要像普通文件一样去处理,如果ACTION为skip,则遇到目录就会被跳过,如果ACTION为recurse,则grep要递归的去处理每个目录,相当于-r
-E, --extended-regexp 用扩展的正则表达式 相当于用egrep 例如grep -ErI 'include|catch' ./ 查找有include和catch的匹配
-e PATTERN, --regexp=PATTERN 指定匹配 比如grep -Ire "printf" --color ./
-F, --fixed-strings 解析表达式用PATTERN 像一个匹配的列表,(这里没翻译明白).用新的换行符分割,任意一个被匹配的.
-P, --perl-regexp 用perl能认识的表达式匹配.
-f FILE, --file=FILE 指定要去查找的文件
-G, --basic-regexp 基本的正则表达式,这个是默认的.
-H, --with-filename 显示匹配文字的文件名
-h, --no-filename 不显示文件名
--help 帮助
-I(大i) 不匹配2进制文件.相当于--binary-files=without-match
-i, --ignore-case 忽略大小写
-L, --files-without-match 只打印没有匹配的文件名
-l, --files-with-matches,打印匹配的文件名 例如grep -rIil "printf" ./ (大i,小l)
-m NUM, --max-count=NUM 当找到NUM个匹配后停止. 这个时候-c -v仍然有效,不过统计的数字不会超过NUM
--mmap 如果可能的话,用系统调用mmap去读到内存来处理,来提高速度.
-n, --line-number 显示出行号.
-o, --only-matching 只显示匹配的文字.


奶茶dsk 于 2007-09-25 16:18:13发表:
:0L :0L ,学习下。。。
gxf 于 2007-09-25 12:51:11发表:
学习了,受益匪浅……