正则表达式

正则表达式


[: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)数据


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容