linux基础之grep

Posted 技术小白丁

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux基础之grep相关的知识,希望对你有一定的参考价值。

grep,egrep,fgrep

grep:根据模式搜索文本,并将符合模式的文本行显示出来

grep [OPTIONS] PATTERN [FILE...]

-i:忽略大小写

--color:以高亮颜色显示

-v:显示没有被模式匹配的行

-o:只显示被匹配到的字符串

-E:使用扩展正则表达式

-A #:当某一行被匹配到,不但显示这一行,还显示其后面#行

-B #:当某一行被匹配到,不但显示这一行,还显示其前面#行

-C #:当某一行被匹配到,不但显示这一行,还显示其前后面#行

 

grep正则表达式(基本正则表达式)(默认情况下正则表达式工作在贪婪模式下)

.:匹配任意单个字符

*:匹配其前面的字符任意次

例子:a,b,ab,aab,acb,adb,amnb

 a*b:b,ab,aab,

 a.*b:ab,aab,acb,adb,amnb(a开头b结尾的字符串)

.*:任意长度的任意字符

?:匹配其前面的字符1次或0次

a?b:含有ab或b的行

{m,n}:匹配其前面的字符至少m次,之多n次

{1,}:至少出现一次

[]:匹配指定范围内的任意单个字符

[^]:匹配指定范围外的任意单个字符

字符集合:[:digit:]数字 [:lower:]小写字母 [:upper:]大写字母 [:punct:]标点符号 [:spcce:]空白字符 [:alpha:]所有字母 [:alnum:]所有数字字母

例子:grep [[:digit]] /a.txt  查找出所有包含数字的行

 

位置锚定:

^:锚定行首,此字符后面的字符必须出现在行首

$:锚定行未,此字符前面的字符必须出现在行未

^$:空白行

<或:其后面的任意字符必须作为单词首部出现

>或:其前面的任意字符必须作为单词尾部出现

 

分组

()

例子:(ab)*:ab整体出现n次。

后向引用

 

以上正则表达式为基本正则表达式,grep默认支持基本正则表达式。

 

扩展正则表达式

.:匹配任意单个字符

[]:匹配指定范围内的单个字符

[^]:匹配指定范围外的单个字符

 

次数匹配

*:匹配前面的字符任意次

?:匹配前面的字符1次或0次

+:匹配其前字符至少一次

{m,n}:匹配其前面的字符至少m次,之多n次

|:或者 例子:C|cat 匹配C或cat      (C|c)at 匹配Cat或cat

():分组

 

grep -E = egrep :即egrep默认支持扩展正则表达式

以上是关于linux基础之grep的主要内容,如果未能解决你的问题,请参考以下文章

python之Linux基础

python之Linux基础

Linux基础回顾之基础命令五(用户及组)

Linux基础之Linux简介

python之Linux基础

Hacker基础之Linux篇:基础Linux命令一