Не используйте циклы оболочки для манипулирования текстом (см. «Почему используется цикл оболочки для обработки текста, который считается плохой практикой» ).
На вашем месте я отформатировал бы вывод в виде таблицы HTML, а не предварительно отформатированного текста, но просто следуйте приведенным ниже инструкциям, чтобы увидеть один из способов получить желаемый результат:
$ cat ../tst.awk
BEGIN {
FS = ","
OFS = " : "
split("FRAME,RAM,CPU 1,CPU 2", titles)
}
FNR == 1 {
close(out)
out = "out" ++cnt ".txt"
print "File", FILENAME ORS "====================" > out
}
$1 != prev {
print "" ORS fmt(1) "\n--------------------\n" > out
prev = $1
}
{
for (i=2; i<=NF; i++) {
print fmt(i) > out
}
print "" > out
}
function fmt(fldNr) { return sprintf("%-8s%s", titles[fldNr] OFS, $fldNr) }
.
$ ls
bbbb.csv cccc.csv
.
$ tail -n +1 *.csv
==> bbbb.csv <==
MO1PPC02,12,0.3,2
MO1PPC02,8,0.2,2
MO1PPC02,15,0.8,2
MO1PPC02,8,0.5,1
MO1PPC02,36,2.0,4
MO1PPC02,48,8.0,12
MO1PPC02,8,0.2,2
MO1PPC02,8,0.2,2
MO1PPC02,31,2.0,8
==> cccc.csv <==
MIAIBB00,,,
MIAIBTST1,,,
MIAIBYC00,8,2.0,4
MIAIBYC00,5,0.1,1
MIAIBYC00,6,0.2,1
MIAIBYC00,0.25,0.2,1
MIAIBYC00,64,3.0,7
MIAIBYC00,80,20.0,20
MIAIBYC00,8,1.0,2
MIAIBYC00,4,1.0,2
MIAIBYC00,4,1.0,2
MIAIBYC00,0,null,0
.
$ awk -f ../tst.awk cccc.csv bbbb.csv
.
$ ls
bbbb.csv cccc.csv out1.txt out2.txt
.
$ tail -n +1 *.txt
==> out1.txt <==
File : cccc.csv
====================
FRAME : MIAIBB00
--------------------
RAM :
CPU 1 :
CPU 2 :
FRAME : MIAIBTST1
--------------------
RAM :
CPU 1 :
CPU 2 :
FRAME : MIAIBYC00
--------------------
RAM : 8
CPU 1 : 2.0
CPU 2 : 4
RAM : 5
CPU 1 : 0.1
CPU 2 : 1
RAM : 6
CPU 1 : 0.2
CPU 2 : 1
RAM : 0.25
CPU 1 : 0.2
CPU 2 : 1
RAM : 64
CPU 1 : 3.0
CPU 2 : 7
RAM : 80
CPU 1 : 20.0
CPU 2 : 20
RAM : 8
CPU 1 : 1.0
CPU 2 : 2
RAM : 4
CPU 1 : 1.0
CPU 2 : 2
RAM : 4
CPU 1 : 1.0
CPU 2 : 2
RAM : 0
CPU 1 : null
CPU 2 : 0
==> out2.txt <==
File : bbbb.csv
====================
FRAME : MO1PPC02
--------------------
RAM : 12
CPU 1 : 0.3
CPU 2 : 2
RAM : 8
CPU 1 : 0.2
CPU 2 : 2
RAM : 15
CPU 1 : 0.8
CPU 2 : 2
RAM : 8
CPU 1 : 0.5
CPU 2 : 1
RAM : 36
CPU 1 : 2.0
CPU 2 : 4
RAM : 48
CPU 1 : 8.0
CPU 2 : 12
RAM : 8
CPU 1 : 0.2
CPU 2 : 2
RAM : 8
CPU 1 : 0.2
CPU 2 : 2
RAM : 31
CPU 1 : 2.0
CPU 2 : 8
.
$ paste *.txt
File : cccc.csv File : bbbb.csv
==================== ====================
FRAME : MIAIBB00 FRAME : MO1PPC02
-------------------- --------------------
RAM : RAM : 12
CPU 1 : CPU 1 : 0.3
CPU 2 : CPU 2 : 2
RAM : 8
FRAME : MIAIBTST1 CPU 1 : 0.2
-------------------- CPU 2 : 2
RAM : RAM : 15
CPU 1 : CPU 1 : 0.8
CPU 2 : CPU 2 : 2
RAM : 8
FRAME : MIAIBYC00 CPU 1 : 0.5
-------------------- CPU 2 : 1
RAM : 8 RAM : 36
CPU 1 : 2.0 CPU 1 : 2.0
CPU 2 : 4 CPU 2 : 4
RAM : 5 RAM : 48
CPU 1 : 0.1 CPU 1 : 8.0
CPU 2 : 1 CPU 2 : 12
RAM : 6 RAM : 8
CPU 1 : 0.2 CPU 1 : 0.2
CPU 2 : 1 CPU 2 : 2
RAM : 0.25 RAM : 8
CPU 1 : 0.2 CPU 1 : 0.2
CPU 2 : 1 CPU 2 : 2
RAM : 64 RAM : 31
CPU 1 : 3.0 CPU 1 : 2.0
CPU 2 : 7 CPU 2 : 8
RAM : 80
CPU 1 : 20.0
CPU 2 : 20
RAM : 8
CPU 1 : 1.0
CPU 2 : 2
RAM : 4
CPU 1 : 1.0
CPU 2 : 2
RAM : 4
CPU 1 : 1.0
CPU 2 : 2
RAM : 0
CPU 1 : null
CPU 2 : 0
.
$ paste *.txt | column -L -s$'\t' -t
File : cccc.csv File : bbbb.csv
==================== ====================
FRAME : MIAIBB00 FRAME : MO1PPC02
-------------------- --------------------
RAM : RAM : 12
CPU 1 : CPU 1 : 0.3
CPU 2 : CPU 2 : 2
RAM : 8
FRAME : MIAIBTST1 CPU 1 : 0.2
-------------------- CPU 2 : 2
RAM : RAM : 15
CPU 1 : CPU 1 : 0.8
CPU 2 : CPU 2 : 2
RAM : 8
FRAME : MIAIBYC00 CPU 1 : 0.5
-------------------- CPU 2 : 1
RAM : 8 RAM : 36
CPU 1 : 2.0 CPU 1 : 2.0
CPU 2 : 4 CPU 2 : 4
RAM : 5 RAM : 48
CPU 1 : 0.1 CPU 1 : 8.0
CPU 2 : 1 CPU 2 : 12
RAM : 6 RAM : 8
CPU 1 : 0.2 CPU 1 : 0.2
CPU 2 : 1 CPU 2 : 2
RAM : 0.25 RAM : 8
CPU 1 : 0.2 CPU 1 : 0.2
CPU 2 : 1 CPU 2 : 2
RAM : 64 RAM : 31
CPU 1 : 3.0 CPU 1 : 2.0
CPU 2 : 7 CPU 2 : 8
RAM : 80
CPU 1 : 20.0
CPU 2 : 20
RAM : 8
CPU 1 : 1.0
CPU 2 : 2
RAM : 4
CPU 1 : 1.0
CPU 2 : 2
RAM : 4
CPU 1 : 1.0
CPU 2 : 2
RAM : 0
CPU 1 : null
CPU 2 : 0