免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1061 | 回复: 5
打印 上一主题 下一主题

Shell 字段处理的疑惑问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-11-16 18:50 |只看该作者 |倒序浏览
我在处理字段的时候,在做到取一个特别字段时候遇到了一个问题,例如数据可能是这样的:
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高人可以指点如何比较方便的方法可以在记录中得到%前的数字(就是说在记录中提取有特殊标记的字段),摆脱大家一起来讨论下吧,哪怕就是给点线索也好的,这里谢过大家了

论坛徽章:
0
2 [报告]
发表于 2004-11-16 21:36 |只看该作者

Shell 字段处理的疑惑问题

ping x.x.x.x | grep -i % | sed 's/.*[^ ]*.*/\1/'

论坛徽章:
0
3 [报告]
发表于 2004-11-16 21:48 |只看该作者

Shell 字段处理的疑惑问题

谢谢楼上的兄弟,sed做我到没有想过,试试看去,马上来告诉结果

论坛徽章:
0
4 [报告]
发表于 2004-11-16 21:54 |只看该作者

Shell 字段处理的疑惑问题

[quote]原帖由 "renhx"]1/'[/quote 发表:

我刚才去尝试了下,虽然没成功(sed的语句可能有写问题\1没有引用),不过我得到启示个,现在去研究下,马上回来告诉大家结果

论坛徽章:
0
5 [报告]
发表于 2004-11-16 22:01 |只看该作者

Shell 字段处理的疑惑问题

试过拉,好的

论坛徽章:
0
6 [报告]
发表于 2004-11-16 22:02 |只看该作者

Shell 字段处理的疑惑问题

试过拉,好的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP