egrep扩展正则表达式

egrep扩展正则表达式


egrep及扩展的正则表达式

  • egrep = grep -E
  • egrep [OPTIONS] PATTERN [FILE…]
  • 扩展正则表达式的元字符:
  • 字符匹配:

    • . 任意单个字符
    • [] 指定范围的字符
    • [^] 不在指定范围的字符
  • 次数匹配:

    • * 匹配前面字符任意次
    • ? 0或1次
    • + 1次或多次
    • {m} 匹配m次
    • {m,n} 至少m,至多n次
  • 位置锚定:

    • ^ 行首
    • $ 行尾
    • \<, \b 语首
    • \>, \b 语尾
  • 分组:
    • ()
    • 后向引用:\1, \2, …
  • 或者:
    • a|b a或b
    • C|cat C或cat
    • (C|c)at Cat或cat

使用egrep取出/etc/rc.d/init.d/functions中其

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
基名

~]# basename /etc/rc.d/init.d/functions
functions

目录名

~]# dirname /etc/rc.d/init.d/functions
/etc/rc.d/init.d

扩展正则表达式用法取出目录名

~]# echo "/etc/rc.d/init.d/functions" | egrep -o "[^/]+$"
functions

~]# echo "/etc/rc.d/init.d/functions" | egrep -o ".*[^/]" | egrep -o ".*/"
/etc/rc.d/init.d/
[root@centos7 ~]# echo "/etc/rc.d/init.d/" | egrep -o ".*[^/]" | egrep -o ".*/"
/etc/rc.d/

使用正则表达式取出IP地址

  • 利用扩展正则表达式分别表示0-9、10-99、100-199、200-249、250-255
    • 0-9 表示为 [0-9]
    • 10-99 表示为 [1-9]?[0-9]
    • 100-199 表示为 1[0-9]{2}
    • 200-249 表示为 2[0-4][0-9]
    • 250-255 表示为 25[0-5]
1
2
~]# ifconfig ens33 | egrep -o "([0-9]{1,3}\.){3}[0-9]{1,3}" | head -n1
192.168.52.234
-------------------码字不易尊重原创转载标注不胜感激-------------------
Yes or no?
0%