--color    颜色显示

-n  显示行号


-A+2  数字   显示关键字所在行的下面2行

-B+2  数字   显示关键字所在行的上面2行

-C+2  数字   显示关键字所在行的上下2行


-i   忽略大小写

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

-c  显示关键字有几行

-v  取反,不包含关键字的行有多少

-r   针对目录   cg -r'iptables' /etc/*  


正则表达式:

.    //表示任意单个字符

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

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

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

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


字符集和:[:digit:]数字,  [:lower:]小写字母,   [:upper:]大写字母,   [:punct:]标点符号,   [:space:]空白字符,

[:alpha:]所有字母,   [:alnum:]所有字母和数字


位置锚定:

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

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


\<或者\b  //锚定词首,其后面的任意字符必须作为单词首部出现      例:grep "\<root"  file.txt

\>或者\b   //锚定词尾,其前面的任意字符必须作为单词尾部出现      例:grep "root\>"  file.txt


分组:

\(\)

\(ab\)*    后向引用            例: grep '\(l..e\).*\1'  file.txt    前面匹配到什么,后面就引用什么

\1    引用第一个左括号以及与之对应的右括号所包括的所有内容

\2

\3


alias cg='grep --color'

echo  "alias xx='xx'" >>/etc/bashrc  定义全局生效


cg '[0-9]' 1.txt //匹配数字的 

cg '[aN]' 1.txt//匹配a和N的

cg '[a-zA-Z]' 1.txt  //匹配所有大小写字母的

cg '^[a-z]' 1.txt // 匹配以小写字母开头的

cg '^[0-9]' 1.txt//  匹配以数字开头的

cg '^$' 1.txt// 匹配空行

cg 'r.o' 1.txt  //点  .  代表任意一个字符,包括特殊字符,空格

cg 'r*o' 1.txt// *    匹配*号前面的0个或多个字符

cg 'r.*o' 1.txt // 匹配任意个任意字符

cg 'r\?o' 1.txt// 匹配0个或1个?号前面的字符=cg  -E  'r?o'  1.txt



扩展正则表达式:

grep -E==egrep

grep --color 'r\?o' 1.txt == egrep --color 'r?o' 1.txt

+   //匹配其前面的字符至少1次            例:egrep --color 'r+o' 1.txt //一个或多个+前面的字符

egrep --color 'root|nologin' 1.txt //匹配root或者nologin

grep --color 'root' 1.txt |grep --color 'nologin' //匹配root并且匹配nologin

egrep --color '(rr)+' 1.txt // (rr)表示一个整体  ,匹配2个的 倍数

grep -E --color '(rr){1,3}' 1.txt// 匹配1和3的倍数个




fgrep:不支持正则表达式