Usiamo AWK

Published by

on

Ho sempre avuto un certo timore reverenziale ad utilizzare awk ma devo dire che la potenza offerta è veramente fantastica.
Questo semplice script genera un file con delle query di update a partire da un input fornito come select da un database.
Una casistica abbastanza diffusa che spesso si risolve applicativamente. Suggerisco l’uso di una procedura del genere nel caso di caricamenti batch di grosse quantità di dati.

#!/bin/sh

mysql -uroot -p calderone -BNe “SELECT id,utente from account;” | awk -v i=0 -v tabella=pippo ‘{ elencoID[i]=$1; elencoNomi[i]=$2; i++; }
END {
queryUpdate=”UPDATE “tabella” SET utente = ‘\”%s’\” WHERE id = ‘\”%s’\”;”

for (i=0; i
printf(queryUpdate”\n”,elencoNomi[i],elencoID[i]);
}
}’ > query_esempio_awk.sql

Qualche nota per i neofiti:

  • awk esegue il codice tra parentesi quadre per ogni record presente nella query di input.
  • Ad ogni esecuzione ciascun campo viene individuato come una variabile posizionale $1, $2, …
  • La funzione END viene eseguita solo alla fine dell’input e genera fisicamente il file sql in uscita.
  • La variabile NR è una variabile built-in di awk è indica il “Number of Row”

Iscriviti alla newsletter e scarica un estratto gratuito del mio nuovo libro

Questo campo è obbligatorio.


Sono Luca Cianci e ti aiuto a costruire Team Che Funzionano Davvero utilizzando il coaching e la facilitazione.

#buildyourself


Iscriviti alla newsletter e scarica un estratto gratuito del mio nuovo libro

Questo campo è obbligatorio.

Lascia un commento

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