【问题标题】:awk script to calculate delay from trace file ns-3用于从跟踪文件 ns-3 计算延迟的 awk 脚本
【发布时间】:2017-01-31 22:55:22
【问题描述】:

我想在下面的跟踪文件中测量传输和接收数据包之间的时间。

输入:

 + 0.01 /NodeList/1/DeviceList/1/$ns3::PointToPointNetDevice/TxQueue/Enqueue
 - 0.01 /NodeList/1/DeviceList/1/$ns3::PointToPointNetDevice/TxQueue/Dequeue
 r 0.0200001 /NodeList/0/DeviceList/2/$ns3::PointToPointNetDevice/MacRx
 + 0.11 /NodeList/1/DeviceList/1/$ns3::PointToPointNetDevice/TxQueue/Enqueue
 - 0.11 /NodeList/1/DeviceList/1/$ns3::PointToPointNetDevice/TxQueue/Dequeue
 r 0.12 /NodeList/0/DeviceList/2/$ns3::PointToPointNetDevice/MacRx
 + 0.12 /NodeList/0/DeviceList/3/$ns3::PointToPointNetDevice/TxQueue/Enqueue
 - 0.12 /NodeList/0/DeviceList/3/$ns3::PointToPointNetDevice/TxQueue/Dequeue
 r 0.120001 /NodeList/2/DeviceList/2/$ns3::PointToPointNetDevice/MacRx

这里+代表发送数据,r代表接收数据。跟踪文件中的第 2 列显示时间。

如何使用 awk 代码测量整个文件的 r 和 + 之间的时间?

预期输出如下:

输出:

  0.0100001
  0.01
  0.000001

如果有人提供帮助,我将不胜感激。

【问题讨论】:

  • edit 您的问题包括简洁、可测试的样本输入和预期输出。如果您需要一个外部网站来展示它,那么您还没有努力使其最小化(如minimal reproducible example)。

标签: awk ascii ns-3


【解决方案1】:

我生成了自己的跟踪文件,名为trace,如下:

+ 0.1 Stuff stuff and more stuff
- 0.2 Yet more stuff
r 0.4 Something new
+ 0.8 Something else, not so new
- 1.6 Jiggery
r 3.2 Pokery
+ 6.4 Higgledy Piggledy

那么,我将使用awk 处理您的问题,如下所示:

awk '/^+/{tx=$2}  /^r/{rx=$2; d=rx-tx; $1=$1 "(d=" d ")"} 1' trace

样本输出

+ 0.1 Stuff stuff and more stuff
- 0.2 Yet more stuff
r(d=0.3) 0.4 Something new
+ 0.8 Something else, not so new
- 1.6 Jiggery
r(d=2.4) 3.2 Pokery
+ 6.4 Higgledy Piggledy

也就是说... “如果您看到以+ 开头的行,请将第二个字段保存为变量tx。如果您看到以r 开头的行,请将第二个字段保存为变量rx。计算rx 和tx 之间的差并将其保存为d。通过将(d=variable d) 附加到它的末尾来重建该行的第一个字段。最后的1告诉awk 做它自然的事情——即打印这条线。”

【讨论】:

  • 非常感谢您以这种方式解释。
  • 我刚刚尝试了这段代码,但它不起作用。这是说正则表达式编译失败(语法错误 ^* 或 ^+),即使我尝试通过在 + 前面放置 / 来解决此问题,它仍然表示 { 处或附近存在语法错误。
  • @nick012000 也许问一个新问题,显示您的数据样本,因为事情可能在 2 年内发生了变化。问题是免费的。单击此答案下的share,它将为您提供一个链接,您可以将其添加到新问题中以参考此问题。
  • @MarkSetchell 我明天可能会这样做。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多