匹配
* 表示匹配任意0个或者多个字符
a* 表示匹配0个或者任意个a
aa* 表示匹配1个或者多个a
aaa* 表示至少匹配2个a
. 表示匹配任意一个字符
[abc] 表示匹配a或者b或者c中任意一个字符
[a-z] 表示匹配任意一个小写字符
[0-9] 表示匹配任意一个数字
"^" 表示匹配行首
"$" 表示匹配行尾
"^a" 表示匹配行首为a的行
"^[ab]" 表示匹配行首为a或者b的行
"^$" 表示匹配空白行
`Linux命令` ("`"是在Tab键上方与~相同在同一键位的符号)可以直接执行Linux命令
[^] 在括号中使用^表示取反
[^0-9] 匹配非数字的行
[^a-zA-Z]匹配非字母的行
转义字符“\”
"a\{n\}" 恰好a出现n次的行
"*\{n\}" 表示前面*字符恰好出现n次及以上的行 相同含义的字符"*\{n,\}"
"*\{n\}*"表示前面*字符恰好出现n次的行,最后一个*称为定界符
"*\{m,n\}"表示前面*字符出现至少m次至多n次的概率
grep 实例
1)查找包含“the”的行
grep "the" test
2)查找不包含“the”的行
grep -v "the" test
3)查找以sh开头,以rt结尾,中间是i或o的字符
grep "^sh[io]rt$" test
4)查询oo前面不是w的字符串
grep "[^w]oo" test
5)查询oo前面不是小写字母的字符串
grep "[^a-z]oo" test
6)^匹配以某个字符开头的行。查询以the开头的字符串
grep "^the" test
7)查询不以字母开头的字符串
grep "^[^a-zA-Z]" test
8)查询以.结尾的字符串
grep "\.$" test
9)查询w与d之间包含两个字符的行
grep "w..d" test
10)查询包含连续o字母的行
grep "ooo*" test
11)查询以w开头以d结尾中间至少包含一个o的行
grep "^woo*d$" test
12)查询以w开头d结尾,中间的字符可有可无的行
grep "^w*d$" test
13)查询包含两个o的行
grep "oo" test
14)查询以w开头d结尾,中间包含2~5个o的行
grep "^wo\{2,5\}d$" test
15)查询以w开头以d结尾,中间包含2个以上o的行
grep "^wo\{2,\}d$" test
需要注意的是:o{2}与o{2,}的区别,前者表示恰好两个,后者表示两个及以上。
上述说法可能有问题。