day8:grep命令入门

grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

grep 语法格式:

grep [options] 'pattern' filename

1.options主要选项:

--color=auto 对匹配到的文本着色显示
-v 显示不被pattern匹配到的行
-i 忽略字符大小写
-n 显示匹配的行号
-c 统计匹配的行数
-o 仅显示匹配到的字符串
-q 静默模式,不输出任何信息
-A # after, 后#行
-B # before, 前#行
-C # context, 前后各#行
-e 实现多个选项间的逻辑or关系,如grep –e ‘cat ’ -e ‘dog’ file
-w 匹配整个单词
-E 使用ERE,相当于egrep
-F 相当于fgrep,不支持正则表达式

2.grep中正则表达式的应用:

在grep中使用正则表达式时,正则外面可以不用'';如grep r..t /etc/passwd;当然写成  grep 'r..t' /etc/passwd也是一样的结果。

 

元字符  功能  示例
^ 行首定位符  ^my  匹配所有以my开头的行
$ 行尾定位符  my$  匹配所有以my结尾的行
. 匹配除换行符以外的单个字符  m..y  匹配包含字母m,后跟两个任意字符,再跟字母y的行
* 匹配零个或多个前导字符  my*  匹配包含字母m,后跟零个或多个y字母的行
[] 匹配指定字符组内的任一字符  [Mm]y  匹配包含My或my的行
[^] 匹配不在指定字符组内的任一字符  [^Mm]y  匹配包含y,但y之前的那个字符不是M或m的行
[a-z] 任一小写字母  
[a-Z] 任一字母  
a? 匹配?前导字符a零个或一个  
a+ 匹配前导字符a一个或多个  
\< 词首定位符  /\<my/  匹配包含以my开头的单词的行
\> 词尾定位符  /my\>/  匹配包含以my结尾的单词的行
x\{m\} 连续m个x  /9\{5\}/ 匹配包含连续5个9的行
x\{m,\} 至少m个x  /9\{5,\}/  匹配包含至少连续5个9的行
x\{m,n\} 至少m个,但不超过n个x  /9\{5,7\}/  匹配包含连续5到7个9的行

扩展正则:grep -E 或 egrep,扩展正则支持

posted @ 2021-11-16 15:58  诟笑  阅读(43)  评论(0编辑  收藏  举报