文本查找的需要:
grep:根据模式搜索文本,并将符合模式的文本行显示出来。
Pattern:文本字符和正则表达式的元字符组合而成的匹配条件
grep [options] PATTERN [FILES]
- -i 忽略大小写
- –color 显示标注颜色
- -v 显示没有被模式匹配到的行
- -o 只显示被匹配到的字符串
*:任意长度的任意字符
?:任意单个字符
[]:指定范围内的
[^]:指定范围外的
正则表达式(regular expression)(REGEXP)
元字符:
.: 匹配任意单个字符
?:任意单个字符
[]:指定范围内的任意单个字符
[^]:指定范围外的任意单个字符
字符集合:[:digit:]数字,[:lower:]小写字母,[:upper:]大写字母,[:punct:]标点符号,[:space:]空格,[:alpha:]所有字母,[:alnum:]字母数字下划线,
匹配次数(贪婪模式:尽可能长的去匹配):
*:匹配其前面的字符任意次
a,ab,aab,acb,adb,amnb
a*b
只能匹配到:b,ab,aab
.*:匹配任意长度的任意字符
能匹配到:ab,aab,acb,adb,amnb
\?:匹配其前面的字符1次或0次:
{m,n}:匹配其前面的字符至少m次,至多n次
位置锚定:
^:锚定行首,此字符后面的任意内容必须出现在行首
$:锚定行尾,此字符前面的任意内容必须出现在行尾
^$:空白行
\<或\b:锚定词首,其后面的任意字符必须作为单词首部出现
>或\b:锚定词尾,其前面的任意字符必须作为单词尾部出现
分组:
()
(ab)*:包含任意个ab的字符串。
\1:后向引用
grep:使用基本正则表达式定义的模式来过滤文本的命令:
-E:使用扩展正则表达式
-A (数值n):显示被匹配到的行以及其下面的n行
-B (数值n):显示被匹配到的行以及其上面的n行
-C (数值n):显示被匹配到的行以及其上面的n行和下面的n行
扩展正则表达式
字符匹配:
.:
[]:
[^]:
次数匹配:
*:其前字符任意次
?:其前字符0次或1次
+:匹配其前字符至少1次
{m,n}(无需使用反斜线):匹配其前面的字符至少m次,至多n次
位置锚定:
^:
$:
\<:
>:
分组:
():分组
\1,\2,\3,…
或者
|:or的意思
(C|c)at:小写或者大写C后接着at。
找出1-255之间的数字:
$:\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])>
grep -E = egrep
$:ipconfig | egrep –color
grep,egrep,
fgrep:(fast)不支持 正则表达式