对 iostat 输出重新排序,时间位于设备列旁边

对 iostat 输出重新排序,时间位于设备列旁边

我正在尝试重新格式化 iostat 数据。

电流输出:

TimeA

Column1 Column2 Column3
disk1    10GB     small
disk2    20GB     medium
disk3    30GB     large

TimeB

Column1 Column2 Column3
disk1    10GB     small
disk2    20GB     medium
disk3    30GB     large

我想要如下:

TimeA  Column1 Column2 Column3
       disk1    10GB     small
       disk2    20GB     medium
       disk3    30GB     large

TimeB  Column1 Column2 Column3
       disk1    10GB     small
       disk2    20GB     medium
       disk3    30GB     large

答案1

awk '
     NF == 1    { time_value = $1 }
     NF == 0    { if (time_value == "") print }
     NF == 3    { printf("%-7s", time_value); time_value = ""; print }
    '
  • 如果一行只有一个值,则它是时间值。保存。
  • 打印时间线和数据行之间出现的空白行。不要在数据行之后打印空行。
  • 第一次看到包含三个值的行时,请在开头打印保存的时间值。然后删除保存的时间值。随后的数据行(直到下一个时间行)在开头打印有空格。

相关内容