使用 cut 解析 vnstat 输出

使用 cut 解析 vnstat 输出

我已经弄乱这个问题一段时间了,但就是无法解决。我尝试使用 cut 命令解析 vnstat 的输出以生成日志,以提取带宽使用情况和每秒数据包数。原始输出看起来像是制表符分隔的,但我使用未指定分隔符得到的输出看起来像一个空格。不指定任何内容(制表符分隔)或使用 -d' ' 和 -f# 来指定字段似乎不起作用。我是否必须改用正则表达式?

vnstat -i venet0 -tr | grep 'rx' | cut -f1

未指定分隔符

rx 0.06 kbit/s 0 packets/s

原始输出

vnstat -i venet0 -tr
8 packets sampled in 5 seconds
Traffic average for venet0

  rx         0.25 kbit/s             0 packets/s
  tx         0.54 kbit/s             0 packets/s

答案1

正如上面steeldriver的评论所指出的,答案是这样的:

vnstat -i venet0 -tr | awk '$1 == "rx" {print $2,$3}'

相关内容