我正在尝试重新格式化 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 }
'
- 如果一行只有一个值,则它是时间值。保存。
- 打印时间线和数据行之间出现的空白行。不要在数据行之后打印空行。
- 第一次看到包含三个值的行时,请在开头打印保存的时间值。然后删除保存的时间值。随后的数据行(直到下一个时间行)在开头打印有空格。