AWK con uso di funzioni
Il programma riportato sotto legge il file di testo pasquale.txt e analizza i campi in esso contenuti utilizzando come separatore di attributo il carattere “,” (virgola)
Per ogni field (3 field statici) applicata la funzione “trim()” e stampa il contenuto formattandolo con la funzione “printf” che formatta l’output allineando i field a sinistra (man awk e cercare printf)
#!/bin/sh
FILENAME=pasquale.txt
cat $FILENAME|awk '
function ltrim(s) { sub(/^[ \t\r\n]+/, "", s); return s }
function rtrim(s) { sub(/[ \t\r\n]+$/, "", s); return s }
function trim(s) { return rtrim(ltrim(s)); }
{
split($0,a,",");
printf "%-70s,%-15s,%-50s\n",trim(a[1]),trim(a[2]),trim(a[3]);
}'
Esempio file di test “pasquale.txt”
SOGGETTO_ID,SOGGETTO_HASH,SOGGETTO_NDG
UGOMRA64P19D431Y,-1573560468,22MR9W64P13D549Q
Creare quindi lo script pasquale.sh con il contenuto dello script bash
Creare il file pasquale.txt con il contenuto del del file di test
Rendere eseguibile lo script pasquale.sh ed eseguire come di seguito riportato:
chmod 755 pasquale.sh
./pasquale.sh