[问题] regular expression 小问题

楼主: decken (HAHAHA~)   2016-06-01 05:55:30
大家好,
有一份文件(https://goo.gl/2Vc3Ui):
146460673
PING 10.0.0.6 (10.0.0.6): 56 data bytes
想要把146460673及56抓出来,
自己试过下列的regular expression:
cat short_measurement_PING.txt | sed -r 's/([0-9]+).*PING.*([0-9]+) data bytes/\1 \2/g'
cat short_measurement_PING.txt | sed -r 's/([0-9]+)$.*PING.*([0-9]+) data bytes/\1 \2/g'
cat short_measurement_PING.txt | sed -r 's/^([0-9]+)$^.*PING.*([0-9]+) data bytes/\1 \2/g'
不过完全没作用,
想请问大家有什么建议吗?
谢谢~
※ 编辑: decken (212.201.78.21), 06/01/2016 06:10:26
作者: Ice9 (又到了属于我的季节)   2016-06-01 08:49:00
跳行不是要加反斜线?呃,错了,那是要输入。 觉得你要在 $ 后面加个\n抱歉。以上都不对~
作者: antontw (公道伯)   2016-06-01 09:57:00
用 awk 来做比较快:awk '{a=index($0, "P 0) byte=$0;else printf("byte=%d,data=%d", byte, $4);}' short_measurement_PING.txt贴烂了,重贴一次:awk '{a=index($0, "PING");if (a == 0)byte=$0; else printf("byte=%d, data=%d", byte, $4);}'short_measurement_PING.txt
作者: Jerr (身为老爸老妈噜..)   2016-06-01 15:08:00
awk 'NF==1{print $1} $1 ~ /^PING$/ {print $4}'
楼主: decken (HAHAHA~)   2016-06-01 16:33:00
谢谢大家的建议,总算成功了原来还有awk这么好用的工具,,现在才知道 XD
作者: Ice9 (又到了属于我的季节)   2016-06-02 06:43:00
嗯,开始学 awk。谢谢~
作者: antontw (公道伯)   2016-06-02 13:39:00
Jerr 的比较帅 // 感谢 Jerr
作者: pizzahut (...)   2016-06-03 15:49:00
为什么不直接sed 's///g' XXXX.txt 这样做就好,比较简单,cat xxxx.txt | sed 'g///s' 有点多此一举写错了 'g///s'

Links booklink

Contact Us: admin [ a t ] ucptt.com