mirror of
https://github.com/johnkerl/miller.git
synced 2026-01-24 02:36:15 +00:00
75 lines
2.7 KiB
ReStructuredText
75 lines
2.7 KiB
ReStructuredText
Customization: .mlrrc
|
|
================================================================
|
|
|
|
How to use .mlrrc
|
|
----------------------------------------------------------------
|
|
|
|
Suppose you always use CSV files. Then instead of always having to type ``--csv`` as in
|
|
|
|
.. code-block:: none
|
|
:emphasize-lines: 1,1
|
|
|
|
mlr --csv cut -x -f extra mydata.csv
|
|
|
|
.. code-block:: none
|
|
:emphasize-lines: 1,1
|
|
|
|
mlr --csv sort -n id mydata.csv
|
|
|
|
and so on, you can instead put the following into your ``$HOME/.mlrrc``:
|
|
|
|
.. code-block:: none
|
|
|
|
--csv
|
|
|
|
Then you can just type things like
|
|
|
|
.. code-block:: none
|
|
:emphasize-lines: 1,1
|
|
|
|
mlr cut -x -f extra mydata.csv
|
|
|
|
.. code-block:: none
|
|
:emphasize-lines: 1,1
|
|
|
|
mlr sort -n id mydata.csv
|
|
|
|
and the ``--csv`` part will automatically be understood. (If you do want to process, say, a JSON file then ``mlr --json ...`` at the command line will override the default from your ``.mlrrc``.)
|
|
|
|
What you can put in your .mlrrc
|
|
----------------------------------------------------------------
|
|
|
|
* You can include any command-line flags, except the "terminal" ones such as ``--help``.
|
|
|
|
* The formatting rule is you need to put one flag beginning with ``--`` per line: for example, ``--csv`` on one line and ``--nr-progress-mod 1000`` on a separate line.
|
|
|
|
* Since every line starts with a ``--`` option, you can leave off the initial ``--`` if you want. For example, ``ojson`` is the same as ``--ojson``, and ``nr-progress-mod 1000`` is the same as ``--nr-progress-mod 1000``.
|
|
|
|
* Comments are from a ``#`` to the end of the line.
|
|
|
|
* Empty lines are ignored -- including lines which are empty after comments are removed.
|
|
|
|
Here is an example ``.mlrrc file``:
|
|
|
|
POKI_INCLUDE_ESCAPED(sample_mlrrc)HERE
|
|
|
|
Where to put your .mlrrc
|
|
----------------------------------------------------------------
|
|
|
|
* If the environment variable ``MLRRC`` is set:
|
|
|
|
* If its value is ``__none__`` then no ``.mlrrc`` files are processed. (This is nice for things like regression testing.)
|
|
|
|
* Otherwise, its value (as a filename) is loaded and processed. If there are syntax errors, they abort ``mlr`` with a usage message (as if you had mistyped something on the command line). If the file can't be loaded at all, though, it is silently skipped.
|
|
|
|
* Any ``.mlrrc`` in your home directory or current directory is ignored whenever ``MLRRC`` is set in the environment.
|
|
|
|
* Example line in your shell's rc file: ``export MLRRC=/path/to/my/mlrrc``
|
|
|
|
* Otherwise:
|
|
|
|
* If ``$HOME/.mlrrc`` exists, it's processed as above.
|
|
|
|
* If ``./.mlrrc`` exists, it's then also processed as above.
|
|
|
|
* The idea is you can have all your settings in your ``$HOME/.mlrrc``, then override maybe one or two for your current directory if you like.
|