Last active
May 6, 2018 23:49
-
-
Save pablopers/088d142c0e02aa35f847c3aef0b239b5 to your computer and use it in GitHub Desktop.
Uno script bash di esempio, che scarica i dati da http://opencup.gov.it/ per la Città Metropolitana di Napoli e li trasforma in CSV e JSON. Costruito a partire da https://bit.ly/2wiDV9h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
### requisiti ### | |
# csvkit | |
# jq | |
### requisiti ### | |
set -x | |
# scegliere e impostare la cartella di output | |
cartella="/var/www/html/opencup" | |
rm "$cartella"/*.zip | |
# scarico file di interesse da OpenCup (questa é la CMNA) | |
wget -O "$cartella"/dati.zip http://opencup.gov.it/documents/21195/22370/OpenData+Area+Sud+CSV/833adb80-9e7a-4f1a-97e1-c00289ed6ed2 | |
# rinomino l'output dell'unzip in dati.csv (occhio ha senso soltanto se nel file zip c'è un solo file) | |
for z in "$cartella"/*.zip; do | |
unzip "$z"; | |
mv "$(unzip -Z1 $z)" "${z%%.*}.csv"; | |
done | |
# imposto la PIVA CF dell'ente da usare poi come filtro (questo è CMNA) | |
PIVACF="01263370635" | |
# estraggo intestazione | |
<"$cartella"/dati.csv head -n 1 >"$cartella"/"$PIVACF"_tmp.csv | |
# estraggo solo i dati della PA con quella PIVA e li aggiungo al file con l'intestazione | |
<"$cartella"/dati.csv grep -a ''"$PIVACF"'' >>"$cartella"/"$PIVACF"_tmp.csv | |
# creo un output CSV in UTF-8 e con ',' come separatore | |
<"$cartella"/"$PIVACF"_tmp.csv csvformat -d "|" -e "ISO-8859-15" >"$cartella"/"$PIVACF".csv | |
#Query sql per filtro colonne e ordinamento | |
csvsql --query 'select "CUP","DESCRIZIONE_SINTETICA_CUP","ANNO_DECISIONE","STATO_PROGETTO","COSTO_PROGETTO","REGIONE","PROVINCIA","COMUNE","PIVA_CODFISCALE_SOG_TITOLARE","CATEGORIA_SOGGETTO","CODICE_AREA_SOGGETTO","AREA_SOGGETTO","CODICE_NATURA_INTERVENTO","NATURA_INTERVENTO","CODICE_TIPO_INTERVENTO","TIPOLOGIA_INTERVENTO","CODICE_AREA_INTERVENTO","AREA_INTERVENTO","CODICE_SETTORE_INTERVENTO","SETTORE_INTERVENTO","CODICE_SOTTOSETTORE_INTERVENTO","SOTTOSETTORE_INTERVENTO","CODICE_CATEGORIA_INTERVENTO","CATEGORIA_INTERVENTO","SOGGETTO_RICHIEDENTE","TIPOLOGIA_CUP","DESCRIZIONE_INTERVENTO","STRUTTURA_INFRASTRUTTURA","INDIRIZZO_INTERVENTO","NUMERO_DELIBERA_CIPE","ANNO_DELIBERA","FLAG_LEGGE_OBIETTIVO","FINANZA_PROGETTO","FLAG_TIPO_GENERICO","CUP_IN_RELAZIONE","RUOLO_IN_RELAZIONE","DESC_TIPO_RELAZIONE","DATA_ULTIMA_MODIFICA_SSC","DATA_ULTIMA_MODIFICA_UTENTE","DATA_CHIUSURA_REVOCA","CODICE_LOCALE_PROGETTO","CODICE_STRUMENTO_PROGRAM","STRUMENTO_PROGRAMMAZIONE","CODICE_COPERTURA_FINANZIARIA","COPERTURA_FINANZIARIA","SPONSORIZZAZIONI","ALTRE_INFORMAZIONI","DATA_GENERAZIONE_CUP","CONTROLLO_QUALITA","CUP_MASTER","RAGIONI_COLLEGAMENTO","LINK_OPENCOESIONE","LINK_SCUOLE_SICURE" from "01263370635" order by "ANNO_DECISIONE" DESC,"STATO_PROGETTO" ASC' "$cartella"/01263370635.csv >"$cartella"/cmnacup.csv | |
#Conversione in json | |
<"$cartella"/cmnacup.csv csvjson | jq . >"$cartella"/cmnacup.json | |
# rimuovo i file inutili dalla cartella | |
rm "$cartella"/"$PIVACF"_tmp.csv | |
rm "$cartella"/dati.csv | |
rm "$cartella"/*.zip | |
rm "$cartella"/01263370635.csv |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment