基础符号
特殊符号 |
代表意义 |
[:alnum:] |
代表英文大小写字符与数字:0-9a-zA-Z |
[:alpha:] |
代表英文大小写字符:a-zA-Z |
[:blank:] |
代表空格键与[TAB]键 |
[:cntrl:] |
|
[:digit:] |
代表数字:0-9 |
[:graph:] |
除了空格符(空格键与tab键)外的其他所有按键 |
[:lower:] |
代表小写字母 |
[:upper:] |
代表大写字母 |
[:print:] |
代表哦任何可以被打印的字符 |
[:punct:] |
代表标点符号,即” ‘ ? ; : $等 |
[:space:] |
任何会产生空白的字符,包括空格键tab,CR等 |
[:xdigit:] |
代表十六进制的数字类型,因此包括0-9 A-F a-f的数字和字符 |
基础正则表达式字符
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 |