基础符号

特殊符号

代表意义

[:alnum:]

代表英文大小写字符与数字:0-9a-zA-Z

[:alpha:]

代表英文大小写字符:a-zA-Z

[:blank:]

代表空格键与[TAB]键

[:cntrl:]

代表键盘上的控制按键:包括CR,LF,TAB,DEL等。

[: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