- 论坛徽章:
- 0
|
我在处理字段的时候,在做到取一个特别字段时候遇到了一个问题,例如数据可能是这样的:
2 packets transmitted, 2 received, 0% packet loss, time 999ms
也可能是这样的:
2 packets transmitted, 0 received, +2 errors, 100% packet loss, time 1012ms, pipe 2
也可能是其他模式(目前未知),但是有一点就是只会出现一个含%的数字比如第一行里面的0%和第二行里的100%,我现在要做的就是希望直接取出这个%号前的数字,但是我发现AWK&SED好象都没简单办法实现(我的能力有限),我自己就针对如上的2条写了个很勉强的语句:
ping -c 2 -q -n 61.152.148.93|grep packets|awk -F"%" '{print $1}' |awk -f test.awk
其中test.awk里面的内容是
{
if ( $6 ~ /+/ ) {
print $8
}
else {
print $6
}
}
可是语句执行交复杂导致我后续程序过长的等待,不知哪为shell高人可以指点如何比较方便的方法可以在记录中得到%前的数字(就是说在记录中提取有特殊标记的字段),摆脱大家一起来讨论下吧,哪怕就是给点线索也好的,这里谢过大家了  |
|