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\>
匹配整个单词
后向引用