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

Share Button

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *