Join tra file testuali usando Miller

Come realizzare una JOIN tabellare tra file testuali usanso Miller.

A cura di Totò Fiandaca  | issue #60 | chef Andrea Borruso


Caso d’uso: Partendo da due file di testo, con diverso numero di colonne, fare un join tra il campo 3 del primo e 1 del secondo file mantenendo solo alcuni campi e non tutti, tenendo presente che il primo file è un CSV con intestazione e il secondo un TSV senza intestazione.

script

mlr --icsv --onidx --ofs "\t" cat layer.csv >layer_t.tsv
mlr --nidx --fs "\t" join -j 3 -r 1 --rp r -f out_regioni_xpath.tsv then cut -f 1,r2 layer_t.tsv >out.tsv

osservazioni

  • prima riga script: trasforma il file CSV con intestazione in un file TSV senza intestazione;
  • seconda riga: mette in join i due file testuali usando, come colonna comune, la 3 del primo e 1 del secondo, infine conserva solo le colonne 1 e r2 del file di output (per maggiori dettagli leggere issue).

dati di esempio

Riferimenti utili

Ultima modifica 24/03/2020: upgrade ricette gb (6c05601)