linux文本处理三剑客之grep

来源:互联网 发布:vender软件 编辑:程序博客网 时间:2024/06/01 10:43

grep是文本搜索工具,逐行读入文本,按照给定的模式(pattern)做匹配,查看行中的单词/字符是否与“模式”相匹配。默认匹配到的行会输出到监视器。

模式:由正则表达式字符及文本字符所编写的过滤条件

格式:

grep [OPTIONS] PATTERN [FILE…]

示例:

示例:grep root /etc/passwd
含义就是搜索在/etc/passwd下包括root字符串的行,如找到把对应的行显示出来。{CentOS 7 默认显示带颜色。CentOS 6 默认显示不带颜色。}
这里写图片描述

选项:

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

pattern正则表达式参数
字符匹配:基本正则表达式元字符

. 匹配任意单个字符
[] 匹配指定范围内的任意单个字符
[^] 匹配指定范围外的任意单个字符
[:alnum:] 字母和数字
[:alpha:] 代表任何英文大小写字符,亦即 A-Z, a-z
[:lower:] 小写字母
[:upper:] 大写字母
[:blank:] 空白字符(空格和制表符)
[:space:] 水平和垂直的空白字符(比[:blank:]包含的范围广)
[:cntrl:] 不可打印的控制字符(退格、删除、警铃…)
[:digit:] 十进制数字
[:xdigit:]十六进制数字
[:graph:] 可打印的非空白字符
[:print:] 可打印字符
[:punct:] 标点符号

匹配次数::用在要指定次数的字符后面,用于指定前面的字 符要出现的次数

*匹配前面的字符任意次,包括0次,贪婪模式:尽可能长的匹配
.* 任意长度的任意字符
\? 匹配其前面的字符0或1次
+ 匹配其前面的字符至少1次
{n} 匹配前面的字符n次
{m,n} 匹配前面的字符至少m次,至多n次
{,n} 匹配前面的字符至多n次
{n,} 匹配前面
^ 行首锚定,用于模式的最左侧
$ 行尾锚定,用于模式的最右侧
^PATTERN$ 用于模式匹配整行
^$ 空行
^[[:space:]]*$ 空白行
\< 或 \b 词首锚定,用于单词模式的左侧
> 或 \b 词尾锚定;用于单词模式的右侧
\< string> 匹配整个单词

结束。-.-||

原创粉丝点击