4 ms·
+1 for easy install (`dnf install miller` on my Fedora). But seems like it cannot handle a simple use case: CSV without header. $ mlr --csv head -n 20 pp-2002
by melx 4y ago
+1 for easy install (`dnf install miller` on my Fedora).
But seems like it cannot handle a simple use case: CSV without header.
$ mlr --csv head -n 20 pp-2002.csv
mlr: unacceptable empty CSV key at file "pp-2002.csv" line 1.
You have to explicitly pass it (FYI `implicit-csv-header` is terrible arg name)
$ mlr --csv --implicit-csv-header head -n 20 pp-2002.csv
While `head` obliges rightly
$ head -n 20 pp-2002.csv
- coldtea 4y agoWell, head just reads lines. A CSV row can optionally be multiple lines. Also head doesn't do anything with the data or the format, aside from printing line by line, so doesn't need to know any column names.
- melx 4y agohead reads CSV row that has multiple lines. Miller is being offered as "like awk, sed, head.." (emphasis on head - mine) and yes it offers more, but it does not behave "like" the *nix tools it refers to.
- 0cf8612b2e1e 4y agoMiller is designed around the idea of structured data. This is a higher bar than naively manipulating text, and the user has to be more deliberate to extract fields. Doing cli manipulation of a csv that contains quoted commas is challenging with the standard tools.
- coldtea 4y ago>head reads CSV row that has multiple lines. It just reads lines, doesn't know anything about rows. So if you want, say, the first 100 rows of a csv that has multiline rows, miller can give it, while head can't. Head will just print the "N" first lines - whether those are 1, 22, 36 or N actual csv rows. >Miller is being offered as "like awk, sed, head.." (emphasis on head - mine) and yes it offers more, but it does not behave "like" the nix tools it refers to.* That's the whole idea. That it behaves in a way more suited to the csv format, and more coherent than 5-6 different text-focused tools. The claim is not "this is awk, sed, head, sort remade for csv with identical interfaces and behavior" but "this is a tool to work with csv files and do what you'd normally have to jump through hoops to do with awk, sed, head, sort which don't understand csv structure".
- kbouck 4y agoyou could shorten to: $ mlr -N --csv head -n 20 pp-2002.csv -N is a shortcut for --implicit-csv-header and --headerless-csv-output