人們的正常思惟都是順向的,那麼逆向思惟呢,特別是初學正則表達式的同窗們,好不容易掌握了正則表達式的用法,再忽然要你用逆向思惟作題,會有不少不適應:正則表達式
這裏拿三道題,來作簡單介紹:bash
一、經典例題取IP:ide
[root@oldboyedu-39 ~]# ifconfig eth0|sed -nr '2s#^[^0-9]+(.*)[a-Z]{5,}.*#\1#gp'ip
10.0.0.200 it
二、調換/etc/passwd中最後一列和第一列的位置:class
[root@oldboyedu-39 ~]# head /passwd.txt|sed -r 's#(^[^:]+)(.*:)(.*)#\3\2\1#g'sed
/bin/bash:x:0:0:root:/root:rootdb
/sbin/nologin:x:1:1:bin:/bin:bindi
/sbin/nologin:x:2:2:daemon:/sbin:daemonview
/sbin/nologin:x:3:4:adm:/var/adm:adm
/sbin/nologin:x:4:7:lp:/var/spool/lpd:lp
/sbin/nologin:x:4:7:lp:/var/spool/lpd:AzaA
三、
[root@oldboyedu-39 ~]# cat ip.log
10.0.0.1 oldboy
10.0.0.2 oldgirl
10.0.0.3 bingbing
10.0.0.4 tingting
10.0.0.4 oldboy
將屬於oldboy的第一列打印出來:
[root@oldboyedu-39 ~]# sed -rn '/oldboy/s#(^[^ ]+).*#\1#gp' ip.log
10.0.0.1
10.0.0.4
以上是正則表達式的幾個逆向思惟的經典案例,歡迎你們拍磚。