grep
根据模式搜索文本, 并将符合模式的文本行显示出来
pattern: 文本字符和正则表达式的元字符组合而成的匹配条件
grep [option] pattern [file]
-i 忽略字符大小写
--color 匹配到的字符加颜色
-v 显示没有被模式匹配到的行
-o 只显示被模式匹配的字符串
-E 使用扩展的正则表达式 grep -E = egrep
-A #:后面的N行
-B #:前面的N行
-C #:前后多少行
与globing 不同
默认情况下,工作在贪婪模式下,尽可能多的匹配
在行中有部分模式匹配就行
匹配部分,但是现实正行
正则表达式,REGEXP regular expression
元字符:
. 匹配任意单个字符
[] 匹配指定范围内的任意单个字符
[^] 匹配指定范围外的任意单个字符
字符集合
匹配次数
- 匹配其前面字符任意次,匹配次数
.* 任意长度的任意字符
\?匹配其前面的字符1次或者0次
{m,n}: 匹配其前的字符至少m次,至多n次,如无上限,则n可以省略;如可为0次,m=0
位置锚定
^: 锚定行首, 此字符后出现的字符串出现在行首
: 空白行 可以统计空白行
<或者\b: 锚定词首,其后面的任意字符必须作为单词的首部出现
>或者\b: 锚定词尾,其前面的任意字符必须作为单词的词尾出现
<word>
分组:
()
(ab)* ab可以出现任意次数
后向引用
\1: 第一个左括号以及阈值对应的右括号所包括的所有内容
\2: 第二个左括号以及阈值对应的右括号所包括的所有内容
正则表达式:
基本正则表达式:
扩展正则表达式:
grep 使用基本正则表达式定义的模式来过滤文本的命令
扩展正则表达式
字符匹配
.
[]
[^]
次数匹配
?
+: 匹配其前字符至少一次
{m,n} 不需要使用反斜线
锚定字符都相同
分组:
()分组
\1,\2,\3...
或者
a|b : or 匹配前一个或者后一个
IPv4
5类: A B C D E
A:1-127
B:128-191
C:192-223
且最后一位不能为0
fgrep: fast 不支持正则表达式