1.搜寻特定字符串
-a: 将binary档案以text档案得方式搜寻数据
-c: 计算找到‘搜寻字符串’得次数
-i: 忽略大小写得不同,所以大小写视为相同
-n: 顺便输出行号
-v:反向选择,亦即显示没有‘搜寻字符串’内容的那一行
2.字符组匹配
[]中包含的任意一个字符。只能是一个
字符组支持由连字符“-”来表示一个范围。当‘-’前后构成范围时,要求前面字符的码小于后面字符的码位。
[^...]排除型字符组。排除后面的字符。只是该字符前不存在而已,如[^g]ood,goooood任然可以匹配到
[abc] :表示“a” 或 “b”或“c”
[0-9] :表示0~9中任意一个数字
[\u4e00-\u9fa5] :表示任意一个案子
[^a1<] :表示出“a”、“1”、“<”外的其他任意一个字符
[^a-z] :表示除小写字母外的任意一个字符
3.行首符:^与行尾符:$
grep -n '^[A-Z]' filename 查看以大写字母开头,grep -n '[^A-Z]' filename 则表示除了大写字母外的所有字符。
‘^$’查找空行,‘^#’查找注释,则通过-v反向选择可以实现过滤功能。
4.任意一个字符“.”(小数点)与重复字符“*”(星号)
.小数点表示任意一个字符,也只能表示一个未知字符。
*星号代表重复前面0个或者多个字符
e*:表示具有空字符或者一个以上e字符。
ee*:表示前面第一个e字符必须存在。第二个e则可以是0个或者多个字符。
eee*:同理,前面两个e必须存在
ee*e: 第一个和第三个e必须存在
5.限定连续字符范围{ }
由于shell中{与}有特殊意义,所有在需要使用的时候要用转义字符\
\{n,m\} 表示找出n到m个前一个RE字符
\{n,\} 表示n个以上的前一个RE字符
--------《鸟哥的linux私房菜》