特殊符号
[:alnum:] 代表英文大小写字符及数字,即 0-9, A-Z, a-z
[:alpha:] 代表任何英文大小写字符,即 A-Z, a-z
[:upper:] 代表大写字符,即 A-Z
[:lower:] 代表小写字符,即 a-z
[:digit:] 代表数字而已,即 0-9
[:xdigit:] 代表 16 进制数字类型,因此包括: 0-9, A-F, a-f 的数字与字符
[:blank:] 空格与Tab
[:space:] 任何会产生空白的字符,包括空格键, [Tab], CR 等等
[:graph:] 除了空格符(空格和Tab键)外的其他所有按键
[:cntrl:] 控制按键,包括 CR(换行), LF(换行), Tab, Del.. 等等
[:print:] 代表任何可以被打印的字符
[:punct:] 代表标点符号 (punctuation symbol),即:" ' ? ! ; : # $...
RE 字符
^word
待搜索的字符串word在行首
eg:grep '^hello' test.txt 表示test.txt中以hello开头的行
注:^word与[^word]意义相差极大
word$
带搜索的字符串word在行尾
eg: grep '!$' test.txt 表示test.txt中以感叹号!结尾的行
.
含一个任意字符,有且仅有一个字符(可以使空格)
grep 'a.a' test.txt 表示test.txt中两个a中间可以使任意一个字符的行,不能是'aa'
注:笔者测试时换行符石不算的,
eg:grep 'aa.' test.txt 以[^a]*aa结尾的行市不算的
\
转义字符,跟C语言一样
grep -n \' test.txt 表示test.txt中含单引号'的行
*
重复0到无穷多次前一个字符
eg:grep go*gle test.txt 表示gogle,google,gooogle,gooo...gle
[list]
要选取的字符集合
eg:grep 'l[ace]' test.txt 表示test.txt中含有la或lb或lc的行
[n1-n2]
要搜索的字符范围
eg:grep '[0-9]' test.txt 表示含有任意数字字符的行
[^list]
反向选择范围
eg:grep '[^0-9]' test.txt 表示含有任意非数字字符的行
eg:grep 'l[^ace]' test.txt 表示含有l后面接任意一个不是a,b,c的字符的行
注:[list]和[^list]并不是互为补集
行abcd1234既属于grep '[0-9]' test.txt 又属于grep '[^0-9]' test.txt
行abcd1234既属于grep '[ace]' test.txt 又属于grep '[^ace]' test.txt
\{n,m\} \{n\}
\{n\} 表示重复n次前一个字符
\{n,m\} 表示重复n到m次前一个字符
grep 'go\{2\}gle' test.txt 表示 gooogle
grep 'go\{1,3\}gle' test.txt 表示 google或者gooogle,或者goooogle
阅读(2146) | 评论(0) | 转发(0) |