docs/src/keystroke-savers.md
In our examples so far, we've often made use of mlr --icsv --opprint or mlr --icsv --ojson. These are such frequently occurring patterns that they have short options like --c2p and --c2j:
You can get the full list here.
Already, we saw that you can put the filename first using --from. When you're interacting with your data at the command line, this makes it easier to up-arrow and append to the previous command:
If there's more than one input file, you can use --mfrom, then however many file names, then -- to indicate the end of your input-file-name list:
Alternatively, you may place filenames within another file, one per line:
<pre class="pre-highlight-non-pair"> <b>cat data/filenames.txt</b> </pre> <pre class="pre-highlight-non-pair"> <b>mlr --c2p --files data/filenames.txt cat</b> </pre>The following have even shorter versions:
-c is the same as --csv-t is the same as --tsv-j is the same as --jsonI don't use these within these documents, since I want the docs to be self-explanatory on every page, and
I think mlr --csv ... explains itself better than mlr -c .... Nonetheless, they're always there for you to use.
If you want the default file format for Miller to be CSV, you can put --csv on a line by itself in your ~/.mlrrc file. Then, instead of mlr --csv cat example.csv you can just do mlr cat example.csv. This is just a personal default, though, so mlr --opprint cat example.csv will use default CSV format for input, and PPRINT (tabular) for output.
You can read more about this at the Customization page.
Suppose you are often doing something like
<pre class="pre-non-highlight-non-pair"> mlr --csv \ filter ‘$quantity > 100’ then \ count-distinct -f category then \ fraction -f count \ filename-which-varies.csv </pre>Typing this out can get a bit old if the only thing that changes for you is the filename.
See Scripting with Miller for some keystroke-saving options.