linux命令系列之grep

来源:互联网 发布:php格式怎么转换 编辑:程序博客网 时间:2024/04/28 08:48

Part 2 grep

grep命令使用的非常广泛,也是我平时工作中使用比较多的一个工具,其名grep含义为global search regular expression(RE) and print out the line。

grep

打印和pattern匹配的行。

命令格式

grep [options] PATTERN [FILE...]

grep [options] [-e PATTERN | -f FILE] [FILE...]

命令描述

grep会从文件或者其它途径获取匹配的行,并且默认情况下会打印输出。

egrep 等同于grep -E 

fgrep 等同于grep -F

可选参数

-A NUM 或者--after-context=NUM

打印匹配行之后的NUM行,如果有多个行匹配,则在每个匹配的中间以--分割,比如命令grep -A 2 2 file的输出为

2
3
5
--
123
44567

-a

像一个文本的方式来处理一个二进制文件。

默认情况下,grep命令对二进制文件如果匹配的话,则会输出匹配:Binary file lighttpd matches,表示匹配,并不打印行。

如果使用-a命令,则会打印输出对应的行。。。。。。。。

-B NUM 或者 --before-context=NUM

打印匹配行之前的NUM行,如果有多个行匹配,则在每个匹配的中间以--分割

-C NUM 或者 --context=NUM

打印匹配行之前和之后的NUM行,如果有多个行匹配,则在每个匹配的中间以--分割。注:如果最后显示的行之间有匹配,则之间的--不复存在。

-b 或者--byte-offset

打印匹配行在文件中的偏移量。

--color[=WHEN]

WHEN有三个选项,分别是always、never和auto,always是任何情况加色,而auto则只在终端输出时加色

-c,--count

输出匹配的行数,不在展示内容。

-E,--extended-regexp

将pattern作为扩展的正则表达式

-e PATTERN,

将PATTERN作为匹配的格式,当格式是以"-"起始的时候,会显示其功能。

-f FILE,

用来从FILE中获取格式,每行表示一个格式。参见链接【http://blog.csdn.net/zhuying_linux/article/details/7019132】

-H --with-filename

对于每个匹配上的,输出相应的文件名称

-h --no-filename

一个文件名称都不展示

-i  --ignore-case

忽略大小写

-l --files-with-matches

输出匹配的文件名称即可

-m NUM ,--max-count=NUM

当从某个文件匹配m个之后,停止匹配该文件

-n --line-number

同时输出匹配行的行号,

-o --only-matching

仅仅输出匹配的行

-R, -r, --recursive

递归地读取文件夹下面的文件

-v --invert-match

打印没有匹配的行

-x --line-regexp 

 严格匹配正行内容


0 0
原创粉丝点击