Dividere un CSV con valori univoci
Dividere un file CSV utilizzando i valori univoci di un suo campo.
A cura di
Totò Fiandaca
| issue
#170
| guida/e
Andrea Borruso
Caso d’uso
Il SOle 24 Ore mette a disposizone un CSV con i dati sulla Qualità della Vita 2020, è un file CSV unico dove il campo INDICATORE contiene il Nome sintetico del fenomeno
; sono 90 i fenomeni osservati nelle 107 Province italiane, quindi il file CSV ha 9630 righe (107x90). Vediamo come ottenere 90 file CSV, uno per ogni fenomeno osservato.
Soluzione con Miller
mlr --csv put '$INDICATORE=gsub($INDICATORE,"/","-")' input.csv | mlr --csv put -q 'tee > $INDICATORE.".csv", $*'
Note:
- prima rimuovo da
INDICATORE
il carattere/
e lo sostituisco con-
; - poi sfrutto il verbo tee di Miller, che creerà dei file di output filtrando su valori di
INDICATORE
distinti.
in output i 90 file con nome file uguale al fenomeno osservato:
Riferimenti utili
Ultima modifica 25/03/2024: update errore (9ab61a9)