您的位置:首页 > 运维架构 > Linux

linux的grep命令简单使用

2017-07-25 14:52 253 查看

Linux的grep命令学习

grep命令是一个很强大的文本查询命令,grep全称是Global Regular Expression Print,可以配合正则表达式来使用

grep常见的两种使用方式

基于文件的查询,使用格式为:
grep     [命令参数]   待匹配模式串  [查询文件]


[ ]为可选的参数

例如:
grep -i 'hello world' menu.h main.c


如果不是在文件中查询的话,一般是通过管道的方式和其他进程相配合来使用

如查找目录下的文件

例如:
ls |grep helloworld


PS:grep后面的模式串进行模糊匹配时,加 ” 修饰的话,将会把符合模式串前缀的一起匹配

例如:在
/usr/include
目录下查找
pthread.h
文件。

ls |grep 'pth*'


输出:

crypt.h

getopt.h

pthread.h

pty.h

stropts.h

而不添加的话,如:
ls |grep pth*


输出:

pthread.h

常见参数

下面列出一些常见的参数:

-a –text 不要忽略二进制的数据。

-A <设定的行数>, –after-context=<设定的行数> 打印文本及其后面NUM 行

例子:grep main helloworld.cpp -A 5

输出:

” 从匹配项所在行开始输出5行。”

-b, –byte-offset 输出的同时打印字节偏移

-B <设定的行数>, –before-context=<设定的行数> 打印文本及其前面NUM 行

例子:同上

输出:

“从匹配项所在行为第5行,从第一行输出到第5行”

-c, –count 只打印每个FILE 中的匹配行数目

例子:
ls |grep haha -c


输出:

匹配的次数

-C <设定的行数>, –context=NUM 打印NUM 行输出文本

也可以使用

-NUM (和 -C <设定的行数>效果一样)

-i ,–ignore-case #忽略字符大小写的差别。

grep的规则表达式

^  #锚定行的开始 如:'^grep'匹配所有以grep开头的行。

$  #锚定行的结束 如:'grep$'匹配所有以grep结尾的行。

.  #匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。

*  #匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。

.*   #一起用代表任意字符。


更多的参数,可以参考以下博主的总结

Linux常用指令—grep(搜索过滤)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 正则表达式 grep