Linux基础入门及系统管理01-Shell三剑客之egrep及扩展正则表达式15


一、正则表达式

   1、Basic RegExp:基本正则表达式;

       a)元字符:

           ., [], [^];

       b)次数匹配:

           *, \?, \{m,n\}, .*;

       c)位置锚定:

           ^, $, \<或(\b), \>或(\b);

       d)分组:

           \(\), \1, \2, \3,……;

       e)grep:-i, -v, -o, --color;

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

           -A:显示匹配行后的行数,如:grep -A 2 'cpu MHz' /proc/cpuinfo;

           -B:显示匹配行前的行数,如:grep -B 2 'cpu MHz' /proc/cpuinfo;

           -c:显示匹配行的前后行数,如:grep -C 2 'cpu MHz' /proc/cpuinfo;

   2、Extened RegExp:扩展正则表达式(grep -E=egrep);

       a)元字符:., [], [^],与基本正则表达式相同;

       b)次数匹配:*, ?, 与基本正则表达式相同;

           +:匹配其前面的字符至少1次,如:grep -E '^[[:space:]]+' /boot/grub.conf;

           {m,n}:匹配至少m次,至多n次;

       c)位置锚定:^, $, \<, \>,与基本正则表达式相同;

       d)分组:(), \1, \2, \3,……;

       e)或者,||:or;

练习:

   1、找出/proc/cpuinfo文件中的,1位数或2位数;

   2、找出/boot/grub/grub.conf文件中的1-255之间的整数;

   3、查找当前系统上名字为student(必须出现在行首)的用户的帐号的相关信息,文件为/etc/passwd;

   4、找到ifconfig命令中显示的IP地址;

   5、获取ifconfig命令显示的IP地址;

   6、获取ifconfig命令显示的IPv4地址;

参考答案:

1、grep --color '\<.*[0-9]\{1,2\}\>' /proc/cpuinfo;

2、egrep --color '\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>' /boot/grub/grub.conf;

3、grep --color ‘^student\>’ /etc/passwd或者grep '^\<student\>' /etc/passwd;

4、ifconfig | egrep -o --color '\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>';

5、# ifconfig | egrep --color '\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.

([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.

([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.

([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>' ;

或者

# ifconfig | egrep --color '

(\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.){3}\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>' ;

6、# ifconfig | egrep --color

'\<[1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-1][0-9]|22[0-3]\>\.{2}\.\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\>' ;

二、IPV4

   5类:A B C D E,可用的有三类:

   1、A类:1-127

   2、B类:128-191

   3、C类:192-223

三、fgrep:不支持正则表达式 。



你可能感兴趣的:(egrep,fgrep,扩展正则表达式,获取IPv4地址)