天天看点

linux之grep命令

文本查找的需要:grep  egrep fgrep(fastgrep)

grep:全面搜索 global research 根据某个模式,去搜索文本,并将符合模式的文本行显示出来

pattern:文本字符和正则表达

grep [OPTIONS] PATTERN [FILE...]

-i:忽略大小写

--color:以颜色来识别

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

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

-E:使用扩展正则表达式(egrep=grep -E)

-A跟数字:显示被匹配到以及向下两行

-B跟数字:显示被匹配到以及向上两行

-C跟数字:显示被匹配到以及向上下两行

grep ‘root’ /etc/passwd 

没有正则表达式,不用“”也行

单引号表示强引用,双引号表示弱引用,只要不涉及变量引用,单双引号都可以

正则表达式:REGular EXPression简写REGEXP

元字符:

.:匹配任意单个字符

匹配次数(贪婪模式)

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

   a,b,ab,aab,acb,adb,amnb

   a*b

   a.*b

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

\?:匹配其前面的字符1次或0次(可有可无的)

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

    \{1,\}

    \{0,3\}

位置锚定:

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

$:锚定行尾,此字符前面的任意内容必须出现在行尾

^$:空白行

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

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

基本正则表达式 basic REGEXP  

扩展正则表达式

分组

\(\)

\(ab\)*反向引用 \1:引用第一个左括号以及与之对应的右括号所包括的所有内容

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

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

次数匹配:

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

?:任意单个字符

+:匹配其前面的字符至少1次

|:or或 C|cat

本文转自 周小玉 51CTO博客,原文链接:http://blog.51cto.com/maguangjie/1853155,如需转载请自行联系原作者

继续阅读