16 Feb 2009
[正则]-匹配数字
今天在shell版块中看到一个提问帖。
有一个c文件:
[root@zhang shell]# cat c
aa bb.cc 192.168.1.4
aa bb.cc 192.168.1.100
aa bb.cc 192.168.1.1
aa bb.cc 192.168.1.102
aa bb.cc 192.168.1.200
aa bb.cc 192.168.1.201
要打印出192.168.1.100-200的行
怎么我用sed -n ‘/192.168.1.[100-200]/p’ c出来的有1和201的呢?
因为-(连字符)表示一个范围。所以这里的100-200并未表示100至200间的数字,而是过滤出含有1,0,2的字段。
解决办法
sed -n ‘/192.168.1.[12][0-9][0-9]/p’
原帖地址 http://bbs2.chinaunix.net/viewthread.php?tid=1371094&extra=&page=2
我的回答在第13楼