Egrep 扩展正则表达式及实例
grep -E[OPTIONS] PATTERN [FILE...] -E:扩展正则表达式 字符匹配 .:任意单个字符 []:指定范围内的任意单个字符 [^]:指定范围外的任意单个字符 次数匹配 *:匹配其前字符任意次 ?:匹配其前字符0次或1次,不需要加反钭线 +:匹配其前字符至少一次,相当于{1,}(?+组合相当于*) {m,n}:匹配其前字符至少m次至多n次,不需要加反钭线 位置锚定 ^ CHARE:行首锚定 CHARE $:行尾锚定 &; CHARE:词首锚定 CHARE &;:词尾锚定 分组: ():不需要加反钭线,后向引用1,2,3...... 或者 |:表示or,其匹配的是坚线前面和后面的整体部分 如:文件内容如下 [root@station01~]#cattest5.txt b bag banana Back 执行结果: [root@station01~]#grep--color-E'b|bag'test5.txt b bag banana 即匹配的只是b和bag 文件内容如下: [root@station01~]#cattest5.txt b bag banana Back Bag 执行结果如下: [root@station01~]#grep--color-E'(B|b)ag'test5.txt bag Bag 即匹配的是bag或Bag,这就是分组的概念 如找出/boot/grub/grub.conf文件中至少一个空白字符开头的行 执行结果如下: [root@station01~]#grep-E'^[[:space:]]+'/boot/grub/grub.conf root(hd0,0) kernel/vmlinuz-2.6.32-71.el6.i686roroot=/ 如: 找出/boot/grub/grub.conf文件中1-255之间的数字 执行结果如下: [root@station01~]#grep--color-E'&;([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])&;'/boot/grub/grub.conf timeout=5 titleRedHatEnterpriseLinux(2.6.32-71.el6.i686) kernel/vmlinuz-2.6.32-71.el6.i686roroot=/dev/mapper/vg_station01-lv_rootrd_LVM_LV=vg_station01/lv_rootrd_LVM_LV=vg_station01/lv_swaprd_NO_LUKSrd_NO_MDrd_NO_DMLANG=en_US.UTF-8SYSFONT=latarcyrheb-sun16KEYBOARDTYPE=pcKEYTABLE=uscrashkernel=autorhgbquiet initrd/initramfs-2.6.32-71.el6.i686.img 找出ifconfig文件中1-255的数字 执行结果如下: [root@station01~]#ifconfig|grep--color-E'&;([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])&;' eth0Linkencap:EthernetHWaddr00:0C:29:52:C5:1B inetaddr:172.24.5.56Bcast:172.24.5.255Mask:255.255.255.0 inet6addr:fe80::20c:29ff:fe52:c51b/64Scope:Link UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1 RXbytes:1793759242(1.6GiB)TXbytes:4462480(4.2MiB) Interrupt:19Baseaddress:0x2000 inetaddr:127.0.0.1Mask:255.0.0.0 inet6addr:::1/128Scope:Host UPLOOPBACKRUNNINGMTU:16436Metric:1 RXbytes:76440(74.6KiB)TXbytes:76440(74.6KiB) 找出ifconfig文件中点分十进制的类似ip地址的数字 执行结果如下: 1) [root@station01~]#ifconfig|egrep-o'&;([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])&;' 172.24.5.56 172.24.5.255 255.255.255.0 127.0.0.1 255.0.0.0 2) [root@station01~]#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])&;' inetaddr:172.24.5.56Bcast:172.24.5.255Mask:255.255.255.0 inetaddr:127.0.0.1Mask:255.0.0.0 3)次数匹配 [root@station01~]#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])&;' inetaddr:172.24.5.56Bcast:172.24.5.255Mask:255.255.255.0 inetaddr:127.0.0.1Mask:255.0.0.0 4) 找出ifconfig文件中A类(1-127)、B类(128-191)、C类(192-223)IP地址 [root@station01~]#ifconfig|egrep--color'&;([1-9]|[1-9][0-9]|1[0-9][0-9]|2[01][0-9]|22[0-3])&;(.&;([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])&;){2}.&;([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])&;' inetaddr:172.24.5.56Bcast:172.24.5.255Mask:255.255.255.0 inetaddr:127.0.0.1Mask:255.0.0.0 2015年2朋18日 GB-2312 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |