Esplodere una lista di valori di un campo, e poi raggruppare

Come esplodere una lista di valori di un campo, e poi raggruppare per questi valori.

A cura di Totò Fiandaca  | issue #198 | guida/e Andrea Borruso


Caso d’uso

Per ogni espressione ci sono vari tag, ma più espressioni possono avere lo stesso tag, esempio:

expression tag
$vertex_y current, coordinate
$vertex_index current
$vertex_x current, coordinate

con Miller, come posso creare un CSV, a partire dall’esempio di sopra, con due colonne: tags e expressions: dove in tags c'è, appunto, il tag e nella colonna expressions tutte le espressioni che usano quel tag:

tags expressions
current $vertex_y,$vertex_index,…
coordinate $vertex_x,$vertex_y,…

soluzione

con Miller:

mlr --csv nest  --evar "," -f tags then nest --ivar "," -f name  tags_expressions.csv >out.csv

Riferimenti utili

Ultima modifica 10/02/2022: update (1a8751a)