我是Perl的新手,有点难以解析traceroute的行。这是我受到挑战的典型输出。
3 someURL.net (184.106.126.128) 0.579 ms someURL.net (184.106.126.124) 0.742 ms 0.719 ms
注意第一和第二路由如何使用不同的IP地址。 这会改变;例如,有时候啤酒花会像这样使用所有相同的东西:
3 someURL.net (184.106.126.128) 0.579 ms 0.742 ms 0.719 ms
... 或,每一跳可以有不同的路线,或它们都可以是相同的。我想在Perl中使用一些正则表达式等来格式化输出,如下所示:
3|url~ip~time|url~ip~time|url~ip~time
我不确定我是否应该以某种方式遍历各个单词,或者使用正则表达式更容易完成所有单词。任何解决方案或提示表示赞赏。
答案 0 :(得分:5)
为perl使用traceroute模块会不会更容易?您是否有任何理由需要解析原始traceroute输出? (如果只是作为学习正则表达式的练习,当然......但是?)
Net::Traceroute就是我要用的。
答案 1 :(得分:0)
这个正则表达式是否正常工作
((\w+?\.\w+?)\ (\(\d+?\.\d+?\.\d+?\.\d+?\))(\ \d+?\.\d+?\ ms)+\ )+
URL IP TIME