[Home](https://kellyjonbrazil.github.io/jc/) # jc.parsers.ls jc - JSON Convert `ls` and `vdir` command output parser Options supported: - `lbaR1` - `--time-style=full-iso` > Note: The `-1`, `-l`, or `-b` option of `ls` should be used to correctly > parse filenames that include newline characters. Since `ls` does not > encode newlines in filenames when outputting to a pipe it will cause `jc` > to see multiple files instead of a single file if `-1`, `-l`, or `-b` is > not used. Alternatively, `vdir` can be used, which is the same as running > `ls -lb`. The `epoch` calculated timestamp field is naive. (i.e. based on the local time of the system the parser is run on) The `epoch_utc` calculated timestamp field is timezone-aware and is only available if the timezone field is UTC. Usage (cli): $ ls | jc --ls or $ jc ls Usage (module): import jc result = jc.parse('ls', ls_command_output) Schema: [ { "filename": string, "flags": string, "links": integer, "parent": string, "owner": string, "group": string, "size": integer, "date": string, "epoch": integer, # [0] "epoch_utc": integer # [1] } ] [0] naive timestamp if date field exists and can be converted. [1] timezone aware timestamp if date field is in UTC and can be converted. Examples: $ ls /usr/bin | jc --ls -p [ { "filename": "apropos" }, { "filename": "arch" }, ... ] $ ls -l /usr/bin | jc --ls -p [ { "filename": "apropos", "link_to": "whatis", "flags": "lrwxrwxrwx.", "links": 1, "owner": "root", "group": "root", "size": 6, "date": "Aug 15 10:53" }, { "filename": "ar", "flags": "-rwxr-xr-x.", "links": 1, "owner": "root", "group": "root", "size": 62744, "date": "Aug 8 16:14" }, ... ] $ ls -l /usr/bin | jc --ls -p -r [ { "filename": "apropos", "link_to": "whatis", "flags": "lrwxrwxrwx.", "links": "1", "owner": "root", "group": "root", "size": "6", "date": "Aug 15 10:53" }, { "filename": "arch", "flags": "-rwxr-xr-x.", "links": "1", "owner": "root", "group": "root", "size": "33080", "date": "Aug 19 23:25" }, ... ] ### parse ```python def parse(data, raw=False, quiet=False) ``` Main text parsing function Parameters: data: (string) text data to parse raw: (boolean) unprocessed output if True quiet: (boolean) suppress warning messages if True Returns: List of Dictionaries. Raw or processed structured data. ### Parser Information Compatibility: linux, darwin, cygwin, aix, freebsd Source: [`jc/parsers/ls.py`](https://github.com/kellyjonbrazil/jc/blob/master/jc/parsers/ls.py) Version 1.12 by Kelly Brazil (kellyjonbrazil@gmail.com)