正则表达式
[:alpnum:] 任意英文大小写字符及数字,即0-9、a-z、A-Z
[:aplha:] 任意英文大小写字符
[:lower:] 任意小写字母
[:upper:] 任意大写字母
[:alpha:] 任意所有字母
[:digit:] 任意数字
[:alnum:] 任意数字和大小写字母
例句
grep -n '^a' wendang.txt
- ^ 代表行首,查找以a为行首的数据
- “ -n ”-n查找显示数据所在行数
grep -n '.$' wendang.txt
- $ 代表行尾 , “ . ” 点代表任意字符,一定有一个任意字符
-查找出所有行尾
grep -n '!$' wendang.txt
-查找以感叹号为结尾的所有数据
grep -n \' wendang.txt
- “ \ ” \是跳脱字符,将特殊符号的特殊意义去除,转义符
-搜寻含有单引号‘的那一行
grep -n 'ess*' wendang.txt
-“ * ” *是零个或重复到无穷个的前一个字符(RE字符)
-找出含有(es)(ess)(esss)等等的字符串
-注意,因为*可以是0个,所以es也是符合搜寻字符串。
grep -n 'es*' wendang.txt
-会找出含有(e)(es)(ess)(esss)等等的字符串
grep -n 'g[ld]' wendang.txt
- [ ld ]列出想要的字符
- 搜寻含有(gl)(gd)字符的把一行数据
-在文档中搜寻含有(gd)(gl)字符的字符串
grep -n '[0-9a-z]' wendang.txt
-列出想要的字符范围
-查找符合(0-9)(a-z)范围的所有数据
-在字符集中【-】是有特殊意义的,代表两个字符之间的所有连续字符
grep -n 'n[^t]' wendang.txt
- [^] 列出不要的字符或范围
- 查找出n后面除了t的所有字符相连的数据。(n*)
grep -n 'go\{2,3\}' wendang.txt
- \{2,3\} 连续2到3个的前一个字符(这里指o),(goo)(gooo)
- \{2\} 连续2个的前一个字符,(goo)
-\{2,\} 连续2个及以上的前一个字符,(goo)(gooo)
-\{,2\} 连续2个及以下的前一个字符,(go)(goo)
-这里是2个到3个o存在的字符串
grep mail -A2 -B4 /etc/passwd
-" -A " A就是after的首字母,"之后"的意思
-" -B " B就是before的首字母,"之前"的意思
-显示出/etc/passwd含有mail行及其前2行和后3行
grep mail -C3 /etc/passwd
-" -C " 显示目标的前后
-显示含有mail行的前后各3行
grep -o 'nologin' /etc/passwd
-" -o " 只显示匹配到的字符
-显示出/etc/passwd中所有匹配'nologin'的字符
grep -o -c 'nologin' /etc/passwd
-" -c " 统计显示匹配结果的数量
-统计出/etc/passwd中'nologin'的数量
grep -l 'nologin' /etc/passwd /etc/shadow
-" -l " 显出匹配的文件名(只要文件名)
-显示出含有nologin字符的文件
grep -r 'nologin' /etc/
-" -r " 在该目录下递归查找
- 在/etc/下递归查找含有nologin的文件及所在行
grep -n 't[ae]st' 1.txt
-搜索 test 或 tast
grep -n '[^g]oo' 1.txt
-搜索 oo 但其前面不要有g
grep '^[^#;]' 1.txt
-符号 ^ 在 [] 内时是取反的意思,在 [] 之外是行首的意思
-显示行首不是#和;的行
grep -n '\.$' 1.txt
-找到以 . 结尾的行(需要用\进行转意)
grep -n 'g.*g' 1.txt
-通配符中的 * 等于正则中的 .*
-找到以g开头以g结尾的字符串
1. ls -l /etc |grep ‘^l’
-列出 /etc 目录下的链接文件
2. ls -l /etc |grep ‘^l’ |wc -l
-再统计一下多少个
egrep -n 'go+d' 1.txt
-' + ' +意思是重复一个或一个以上的前一个字符(RE字符)
-搜寻文档中(god)(good)(goood).....
egrep -n 'go?d' 1.txt
-' ? ' ?是0个或一个前一个字符(RE字符)
-搜寻文档中(gd)(god)这两个字符串
egrep -n 'gd|god|good' 1.txt
-' | ' 管道符是(or)的方式找出数个字串
-搜寻文档中gd、god、good这几个字符串
egrep -n 'g(la|oo)d' 1.txt
-' () ' 找出群组字串
-搜寻(glad)或(good)这两个字串。
egrep -n 'A(xyz)+C' 1.txt
-' ( )+ ' 多个重复群组的判别
-搜寻(AxyzC)(AxyzxyzC)(Axyz....C)数据