6-grep 与正则表达式

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: 锚定词尾,其前面的任意字符必须作为单词的词尾出现

分组:
()
(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 不支持正则表达式

你可能感兴趣的:(6-grep 与正则表达式)