Если вывод iostat выглядит следующим образом:
$ cat file
HOMES
0.00 0.00 0.00 0.50 0.00 2.00 8.00 0.00 1.00 0.00 1.00 1.00 0.05
ARCHIVEDISK
0.00 0.00 0.00 0.50 0.00 2.00 8.00 0.00 0.00 0.00 0.00 0.00 0.00
DATADISK
0.00 0.00 86.00 0.50 680.00 2.00 15.77 0.12 1.40 1.41 1.00 1.26 10.90
HOMES
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
ARCHIVEDISK
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
DATADISK
0.00 0.00 122.00 116.00 976.00 1164.00 17.98 0.56 2.33 3.36 1.26 1.47 34.90
, то все, что вам нужно, это 1 маленькая простая команда awk (с использованием cat file
вместо iostat
ниже):
$ cat file | awk 'NR%2{dev=$0; next} {printf "%s %-18s %s\n", strftime("%F %T"), dev, substr($0,19)}'
2018-06-22 10:34:09 HOMES 0.00 0.00 0.00 0.50 0.00 2.00 8.00 0.00 1.00 0.00 1.00 1.00 0.05
2018-06-22 10:34:09 ARCHIVEDISK 0.00 0.00 0.00 0.50 0.00 2.00 8.00 0.00 0.00 0.00 0.00 0.00 0.00
2018-06-22 10:34:09 DATADISK 0.00 0.00 86.00 0.50 680.00 2.00 15.77 0.12 1.40 1.41 1.00 1.26 10.90
2018-06-22 10:34:09 HOMES 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
2018-06-22 10:34:09 ARCHIVEDISK 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
2018-06-22 10:34:09 DATADISK 0.00 0.00 122.00 116.00 976.00 1164.00 17.98 0.56 2.33 3.36 1.26 1.47 34.90
Нет необходимости добавлять временные метки, а затем снова их удалять, без необходимости вызывать strftime, проходить по полям, каналам, вызывать «столбец», который испортит исходное выравнивание и т. Д.