您的位置:首页 > 博客中心 > 网络系统 >

Linux中的正则表达式 grep egrep fgrep

时间:2022-04-03 11:20

正则表达式: REGEXP REGuler EXPression,使用元字符和其他字符串来描述、匹配一系列符合某个句法规则的字符串。默认尽可能长得匹配(贪婪模式)。

元字符:

    .:匹配任意单个字符(文件名通配中?表示任意单个字符)

    []:匹配指定范围内的单个字符

    [^]:匹配指定范围外的单个字符

    [:space:]:空白字符

    [:puntt:]:所有标点符号

    [:upper:]:所有大写字母

    [:lower:]:所有小写字母

    [:alpha:]:所有大小写字母

    [:digit:]:所有数字

    [:alnum:]:所有数字和大小写字母

字符次数匹配:

    *:匹配其前字符任意次数(文件名通配中*表示任意长度的任意字符)

    .*:任意长度的任意字符

    \?:匹配其前字符一次或零次,可用可无

    \{\}:\{m,n\}匹配其前字符至少m次,最多n次

        eg:\{1,\}至少1次;\{0,3\}最多3次

位置锚定:

    ^:锚定行首,其后字符必须出现在行首

    $:锚定行尾,其前字符必须出现在行尾

    ^$:空白行

    \<:其后字符必须作为单词首部出现,可用\b代替

    \>:其前字符必须作为单词尾部出现,可用\b代替

        eg:\<root\>==\broot\b

分组:\(\) 

    eg:\(a,b\)*:ab出现任意次

    小括号最主要的作用不是为了使其中的内容当作一个整体被看待,而是方便后面内容引用(后向引用)

        eg:\1:调用前面第一个左括号及其与之对应右括号所包括的内容

            \n:调用前面第n个左括号及其与之对应右括号所包括的内容


正则表达式:分为基本正则表达式和扩展正则表达式

扩展正则表达式:

字符匹配:

.,[],[^]与基本正则表达式一样


次数匹配

*,?:与基本正则表达式一样,?前不需要加\

+:其前字符至少一次==基本正则表达式中 \(1,\)

{m,n}:至少m次至多n次,与基本正则表达式花括号前少了\


锚定字符:

    \< \> ^ $ \b 与基本正则表达式一样


分组:

():不需加\ 支持 \1,\2,\3,…


或者:

    |:or 或者 

    eg:a|b a或者b

    eg:C|cat==C或者cat(而非Cat或者cat)


grep:根据模式去搜索文本,并将符合模式的文本行显示出来。使用基本正则表达式及其定义的模式来过滤文本的命令。

模式:Pattern 文本字符和正则表达式的元字符组合而成的匹配条件

    -i:忽略大小写

    --color:被匹配到的字符加颜色显示

    -o:只显示被匹配到的字符串

    -v:反向查找,显示没有被模式匹配到的内容行

    -E:使用扩展正则表达式

    -A n:显示被匹配到的行和其后n行

    -B n:显示被匹配到的行和其前n行

    -C n:显示被匹配到的行和其前后各n行

egrep:使用扩展正则表达式及其定义的模式来过滤文本的命令。

    egrep=grep -E


fgrep:fast grep 快速查找字符 不支持正则表达式,就按字符串搜索。


本类排行

今日推荐

热门手游