grep文本过滤工具

grep文本过滤工具

命令:grep

格式:grep [OPTIONS] PATTERN

选项:  --color=auto 将匹配的结果着色显示

-v 反向匹配

-i 忽略大小写

-n 显示的结果前增加行号

-c 仅显示匹配到结果的行数

-o 仅显示匹配到的字符串

-q 静默模式,不输出任何信息

相当于 &> /dev/null

-A# 显示关键字行及向后#行

-B# 显示关键字行及向前#行

-C# 显示关键字向前#行,当前行,及向后#行

-e 关键字1 -e 关键字2  实现多个选项间的逻辑or关系

-w 匹配整个单词

-E 使用扩展正则表达式 或egrep

-F 不使用正则表达式 或 fgrep

Patten格式:引用变量或文本用“”or‘’引起来,

引用命令则用``(反引号)引起来。

正则表达式

正则表达式是由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能。支持程序有grep,sed,awk,vim,less,nginx,varnish……它分为基本正则表达式和扩展正则表达式两类,用于grep中,则grep后支持基本正则表达式,grep -E或egrep后支持扩展正则表达式。

字符匹配

字符

 

含义

 

.

 

匹配单个字符

 

[]

 

匹配指定范围内的任意单个字符

 

[^]

 

匹配指定范围外的任意单个字符

 

[:alnum:]

 

所有字母和数字

 

[:alpha:]

 

所有大小写字母(a-z&A-Z)

 

[:lower:]

 

小写字母(a-z)

 

[:upper:]

 

大写字母(A-Z)

 

[:digit:]

 

十进制数字(0-9)

 

[:xdigit:]

 

十六进制数字

 

[:blank:]

 

空白字符(空格和制表符tab)

 

[:space:]

 

水平和垂直的空白字符(比[:black:]范围广)

 

[:punct:]

 

标点符号

 

[:graph:]

 

可打印的非空白字符

 

[:print:]

 

可打印字符

 

[:cntrl:]

 

不可打印的控制字符(退格、删除、警铃……)

 
匹配次数

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

字符

 

含义

 

*

 

匹配前面的字符任意次,包括0次

(贪婪模式:尽可能长的匹配)

 

.*

 

匹配任意长度的任意字符

 

\?

 

匹配其前面的字符0次或1次

 

\+

 

匹配其前面的字符至少1次

 

\{n\}

 

匹配其前面的字符n次

 

\{m,n\}

 

匹配其前面的字符至少m次,至多n次

 

\{,n\}

 

匹配其前面的字符至多n次

 

\{n,\}

 

匹配其前面的字符至少n次

 
位置锚定

位置锚定用于定位出现的位置。

字符

 

含义

 

^

 

行首锚定,用于模式的最左侧

 

$

 

行尾锚定,用于模式的最右侧

 

^PATTERN$

 

用于模式匹配整行

^$  空行

^[[:space:]]$  空白行

 

\< or \b

 

词首锚定,用于单词模式的左侧

 

\> or \b

 

词尾锚定,用于单词模式的右侧

 

\<PATTERN\>

 

匹配整个单词

 
后向引用

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/13488.html