RE字符 |
意义与规则 |
^word |
意义:查找以word开头的行 范例:查找行首为#的行,并列出行号 grep -n ‘^#’ test.txt |
word$ |
意义:查找以word结尾的行 范例:查找以!结尾的行并列出行号 Grep -n ‘!$’ test.txt |
. |
意义:代表一定有一个任意字符的字符 范例:查找eae,ebe这样e和e之间有一个任何字符的字符串 Grep -n ‘e.e’ test.txt |
|
意义:转移字符,将特殊符号的特殊意义去除 范例:查找含有单引号的那一行 Grep -n ’ test.txt |
* |
意义:重复零个到无穷多个的前一个字符 范例:找出含有es,ess,esss等的字符串,*可以是0个也可以是多个,*重复前一个字符,所以*不能单独使用,*前面至少要有一个字符。 Grep -n ‘ess*’ test.txt |
[list] |
意义:从字符集和中找出想要选取的字符 [alf] 代表的意义为a或者l或者f Grep -n ‘g[id]’ test.txt |
[n1-n2] |
意义:从字符集合的字符里找出想要选取的字符范围 范例:查找含有数字的行 Grep -n ‘[0-9]’ test.txt |
[^list] |
意义:从字符集合的字符里找出不要的字符串或范围 范例:查找字符串可以是(oog)(ood)但不能是(oot),[]中的^指反选的意思,匹配[]中字符集合以外的字符。 Grep -n ‘oo[^t]’ test.txt |
{n,m} |
意义:连续n到m个前一个字符,若为{n}则是连续n个的前一个字符,若为{n,}则是连续n个以上的前一个字符 范例:在g与g之间有2到3个o存在的字符 Grep -n ‘go{2,3}g’ test.txt |
+ |
意义:重复一个或一个以上的前一个字符 范例:查找g与d之间有一个或者一个以上的o的字符串 Grep -n ‘go+d’ test.txt |
? |
意义:零个或一个前一个字符 范例:查查找gd,god这两个字符串 Grep -n ‘go?d’ test.txt |
| |
意义:找出一个组,组中的字符以|符号分隔。 找出gad或者good这两个字符串, Grep -n ‘g(a|oo)d’ test.txt |
()+ |
意义:多个重复的组 范例:找出AcxcxcxY这样AY之间存在一个或者多个cx的字符串。 Grep -n ‘A(cx)+Y’ test.txt |