awk: da minuscolo a maiuscolo, compilare numeri con tanti zeri davanti

In questi giorni mi sono cimentato a trasformare i file flat in altri tracciati. Produrre un file con tracciato MAV CBI.

Ho usato ffe e awk. ecco il comando che uso per un file con 13 campi separati dalla virgola.

ffe -c MAV.rc -pflat mav.csv | ffe -c MAV.rc -sdefinitiva | awk -F , ‘{printf “%s,%06i,%s,%s,%s,%s,%s,%s,%s,%s,%06i,%02i,%s,\n”, $1, $2 , $3 , $4 , $5 , $6 , $7 , $8 , $9 , $10 , $11 , $12 , $13}’ OFS=, | awk -F, ‘{$5=toupper($5)}5’ OFS=, | awk -F, ‘{$6=toupper($6)}6’ OFS=, | awk -F, ‘{$7=toupper($7)}7’ OFS=, | awk -F, ‘{$9=toupper($9)}9’ OFS=, | awk -F, ‘{$10=toupper($10)}10’ OFS=, | awk -F, ‘{$13=toupper($13)}13’ OFS=,

Questo è il file MAV.rc di ffe (http://ff-extractor.sourceforge.net/ffe.html)

const zero “000000000”

structure csv {
type separated ,
#  header first
record csv     {
field-count 12
}
}

output flat
{
file_header “”
record_header “G1,”
data “%t”
record_trailer “\n”
justify =
indent “”
file_trailer “”
no-data-print no
separator “,”
}

structure definitiva
{
type separated ,
#    output flat2
record mav
{
id 1 G1
field record 2
field numero 10 * riempi
field codicefiscale 16
field cognome 30
field nome 30
field indirizzo 45
field numerocivico 10
field cap 5
field citta 18
field provincia 2
field importo 6 * riempi
field centesimi 2
field descrizione *
record-length minimum
}
}

output default
{
data “%d”
field-list record,numero,codicefiscale,cognome,nome,indirizzo,numerocivico,cap,citta,provincia,importo,centesimi,descrizione
separator ,
justify left

}

output riempi
{
data “%D”
separator ,
}

output riempi2
{
data “%t”
}