Улучшение ответа от @vintnes.
Вывод результатов в виде разделенных табуляцией CSV
Напишите скрипт awk, который читает значения из строк по их порядку.
Напечатайте каждую запись в том виде, в котором она прочитана.
script.awk
BEGIN {print("computer","succeeded","unchanged","changed","failed","states run","run time");}
FNR%8 == 1 {arr[1] = $3}
FNR%8 == 3 {arr[2] = $2; arr[3] = extractNum($3); arr[4] = extractNum($4)}
FNR%8 == 4 {arr[5] = $2;}
FNR%8 == 6 {arr[6] = $4;}
FNR%8 == 7 {arr[7] = $4; print arr[1],arr[2],arr[3],arr[4],arr[5],arr[6],arr[7];}
function extractNum(str){match(str,/[[:digit:]]+/,m);return m[0];}
скрипт запуска
Выход CSV с разделением табуляцией
awk -v OFS="\t" -f script.awk input-1.txt input-2.txt ...
Выход CSV через запятую
awk -v OFS="," -f script.awk input-1.txt input-2.txt ...
выход
computer succeeded unchanged changed failed states run run time
app1.domain.com 278 12 6 0 278 7.383
app2.domain.com 278 12 6 0 278 7.448
app0.domain.com 293 13 6 0 293 7.510
computer,succeeded,unchanged,changed,failed,states run,run time
app1.domain.com,278,12,6,0,278,7.383
app2.domain.com,278,12,6,0,278,7.448
app0.domain.com,293,13,6,0,293,7.510
Объяснение
BEGIN {print("computer","succeeded","unchanged","changed","failed","states run","run time");}
Печать строки заголовка CSV
FNR%8 == 1 {arr[1] = $3}
Извлечь значение arr [1] из 3-го поля в (первая строка из 8 строк)
FNR%8 == 3 {arr[2] = $2; arr[3] = extractNum($3); arr[4] = extractNum($4)}
Извлечь значения arr [2,3,4] из 2-го, 3-го, 4-го полей в (третья строка из 8 строк)
FNR%8 == 4 {arr[5] = $2;}
Извлечь значение arr [5] из 2-го поля в (4-я строка из 8 строк)
FNR%8 == 6 {arr[6] = $4;}
Извлечь значение arr [6] из 4-го поля в (6-я строка из 8 строк)
FNR%8 == 7 {arr[7] = $4;
Извлечь значение arr [7] из 4-го поля в (7-я строка из 8 строк)
print arr[1],arr[2],arr[3],arr[4],arr[5],arr[6],arr[7];}
выводить элементы массива для извлеченной переменной по завершении чтения 7-й строки из 8 строк.
function extractNum(str){match(str,/[[:digit:]]+/,m);return m[0];}
Утилита для извлечения чисел из текстового поля.