linux的grep命令简单使用

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(搜索过滤)

你可能感兴趣的:(liunx-基础)