- 论坛徽章:
- 0
|
有点怪,第1例比第2例多个*,结果第2个及第3个括号就匹配成空了:
[root@asterisk1 tmp]# echo "cdrom man.jm3100 maxtor ssh-cPNkwQ3110 ssh-rPdESI2989"|awk '
{r=match($0,"([a-z0-9\.]*)( *([a-z0-9\.]*))*",a);
print "line=<",$0,">,r=",r;
for (ii in a) print "a[",ii,"]=<",a[ii],">";
}'
line=< cdrom man.jm3100 maxtor ssh-cPNkwQ3110 ssh-rPdESI2989 >,r= 1
a[ 0start ]=< 1 >
a[ 0length ]=< 30 >
a[ 3start ]=< 31 >
a[ 1start ]=< 1 >
a[ 2start ]=< 31 >
a[ 0 ]=< cdrom man.jm3100 maxtor ssh >
a[ 1 ]=< cdrom >
a[ 2 ]=< >
a[ 3length ]=< 0 >
a[ 3 ]=< >
a[ 2length ]=< 0 >
a[ 1length ]=< 5 >
[root@asterisk1 tmp]# echo "cdrom man.jm3100 maxtor ssh-cPNkwQ3110 ssh-rPdESI2989"|awk '
{r=match($0,"([a-z0-9\.]*)( *([a-z0-9\.]*))",a);
print "line=<",$0,">,r=",r;
for (ii in a) print "a[",ii,"]=<",a[ii],">";
}'
line=< cdrom man.jm3100 maxtor ssh-cPNkwQ3110 ssh-rPdESI2989 >,r= 1
a[ 0start ]=< 1 >
a[ 0length ]=< 17 >
a[ 3start ]=< 8 >
a[ 1start ]=< 1 >
a[ 2start ]=< 6 >
a[ 0 ]=< cdrom man.jm3100 >
a[ 1 ]=< cdrom >
a[ 2 ]=< man.jm3100 >
a[ 3length ]=< 10 >
a[ 3 ]=< man.jm3100 >
a[ 2length ]=< 12 >
a[ 1length ]=< 5 >
[ 本帖最后由 zhangshebao 于 2007-9-1 11:22 编辑 ] |
|