Эта простая программа awk будет искать во входном файле определенные номера #TRANS и помещать их в таблицу. Если одна или более #TRANS отсутствуют, то в будет ноль.
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
Для многих файлов вы можете использовать такой код:
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
Результатом будет:
cat result.txt DATE TRANS1910 TRANS1920 TRANS1930 TRANS2620 TRANS3052 2018-01-13 819.00 1334.00 438.00 -277.61 -2313.39