Release 6.9 di Miller¶
Rilasciata una nuova versione di Miller con il supporto alla compressione ZSTD, una gestione migliore degli errori, il supporto ai nanosecondi nel timestamp e tanto altro.
Grazie infinite John
Il grande John Kerl è l'autore di Miller, uno strumento che ha cambiato in meglio la mia vita lavorativa, facendomi imparare tanto e stimolandomi sempre ad approfondire temi vecchi e nuovi. Grazie, grazie, grazie!
Miller è lo strumento che ha ispirato di più la creazione di questo spazio e per la quale c'è una sezione dedicata, ancora però in costruzione.
Il 31 agosto 2023, è stata pubblicata la release 6.9 di Miller.
A seguire alcune delle novità
Timestamp¶
Per i timestamp sono state introdotte numerose funzioni DSL per gestire i nanosecondi come numero intero a partire dalla data epoch: gmt2nsec, localtime2nsec, nsec2gmt, nsec2gmtdate, nsec2localdate, nsec2localtime, strfntime, strfntime_local, strpntime, strpntime_local, sysntime e upntime.
Funzioni statistiche¶
Sono state introdotte le singole funzioni statistiche, prima presenti soltanto nel verbo stats: ora possono essere usate su array e map.
Verbi per "trova e sostituisci"¶
Aggiunti i nuovi verbi sub, gsub e ssub, per applicare comandi di trova e sostituisci, in modo molto più diretto e comodo della vecchia modalità via verbo put. Sono supportate le espressioni regolari.
Se ad esempio ho questa tabella di input:
| nome | dataNascita | altezza | peso |
|---|---|---|---|
| andy | 1973-05-08 | 176 | 86.5 |
| chiara | 1993-12-13 | 162 | 58.3 |
| guido | 2001-01-22 | 196 | 90.4 |
E voglio sostituire 1973 con 2021 nella colonna dataNascita, si può lanciare questo comando:
Ed ottenere:
| nome | dataNascita | altezza | peso |
|---|---|---|---|
| andy | 2021-05-08 | 176 | 86.5 |
| chiara | 1993-12-13 | 162 | 58.3 |
| guido | 2001-01-22 | 196 | 90.4 |
In qualche modo correlata è l'introduzione della funzione contains, che restituisce true, se il primo argomento contiene il secondo.
Supporto nativo alla compressione ZSTD¶
La compressione ZSTD è ideata per essere efficiente sia in termini di velocità che di rapporto di compressione.
Ne ho scritto da poco nel post "Gestire file CSV grandi, brutti e cattivi".
Con la release 6.9 di Miller si potrà operare direttamente su file compresso in questa modalità, senza decomprimerlo. Ad esempio potrò leggere le prime 10 righe con:
Di questa novità sono un po' orgoglioso, perché deriva da una mia proposta, nata proprio mentre scrivevo il suddetto articolo. Prima c'era il supporto per GZIP, BZIP2 e ZLIB.