Dieses einfache awk-Programm sucht in der Eingabedatei bestimmte #TRANS-Nummern und fügt sie in die Tabelle ein. Wenn ein oder mehrere #TRANS nicht vorhanden sind, ist in Null.
awk ' BEGIN{ for(i=1;i<=6;i++){ o[i]=0 } } /#VER/ { date=$4; o[1]=substr(date,0,4)"-"substr(date,5,2)"-"substr(date,7,2); } /#TRANS 1910/{ o[2]=$4 } /#TRANS 1920/{ o[3]=$4 } /#TRANS 1930/{ o[4]=$4 } /#TRANS 2620/{ o[5]=$4 } /#TRANS 3052/{ o[6]=$4 } END{ for(i=1;i<=6;i++){ out=out o[i] " "; } print out } ' file
Für viele Dateien können Sie solchen Code verwenden:
echo "DATE TRANS1910 TRANS1920 TRANS1930 TRANS2620 TRANS3052" >result.txt for file in $(ls -1 *.sie); do awk ' BEGIN{ for(i=1;i<=6;i++){ o[i]=0 } } /#VER/ { date=$4; o[1]=substr(date,0,4)"-"substr(date,5,2)"-"substr(date,7,2); } /#TRANS 1910/{ o[2]=$4 } /#TRANS 1920/{ o[3]=$4 } /#TRANS 1930/{ o[4]=$4 } /#TRANS 2620/{ o[5]=$4 } /#TRANS 3052/{ o[6]=$4 } END{ for(i=1;i<=6;i++){ out=out o[i] " "; } print out } ' $ >> result.txt done
Das Ergebnis wird sein:
cat result.txt DATE TRANS1910 TRANS1920 TRANS1930 TRANS2620 TRANS3052 2018-01-13 819.00 1334.00 438.00 -277.61 -2313.39