[Home](https://kellyjonbrazil.github.io/jc/)
# jc.parsers.proc
jc - JSON Convert Proc file output parser
This parser automatically identifies the Proc file and calls the
corresponding parser to perform the parsing.
Magic syntax for converting `/proc` files is also supported by running
`jc /proc/`. Any `jc` options must be specified before the
`/proc` path. The magic syntax supports "slurping" multiple files as input.
When multiple files are selected (e.g. `jc /proc/*/stat`) all of the output
will be wrapped inside an array. Also, a `_file` field will be included in
the output which helps correlate the input and output. The `--meta-out`
option can also be used to list the `/proc` input files for correlation with
the output list.
Specific Proc file parsers can also be called directly, if desired, and have
a naming convention of `proc-` (cli) or `proc_` (module). To see
a list of Proc file parsers, use `jc -hh` or `jc -a`.
Usage (cli):
$ cat /proc/meminfo | jc --proc
or
$ jc /proc/meminfo
or
$ cat /proc/meminfo | jc --proc-memifno
Usage (module):
import jc
result = jc.parse('proc', proc_file)
Schema:
See the specific Proc parser for the schema:
$ jc --help --proc-
For example:
$ jc --help --proc-meminfo
Specific Proc file parser names can be found with `jc -hh` or `jc -a`.
Schemas can also be found online at:
https://kellyjonbrazil.github.io/jc/docs/parsers/proc_
For example:
https://kellyjonbrazil.github.io/jc/docs/parsers/proc_meminfo
Examples:
$ cat /proc/modules | jc --proc -p
[
{
"module": "binfmt_misc",
"size": 24576,
"used": 1,
"used_by": [],
"status": "Live",
"location": "0xffffffffc0ab4000"
},
{
"module": "vsock_loopback",
"size": 16384,
"used": 0,
"used_by": [],
"status": "Live",
"location": "0xffffffffc0a14000"
},
{
"module": "vmw_vsock_virtio_transport_common",
"size": 36864,
"used": 1,
"used_by": [
"vsock_loopback"
],
"status": "Live",
"location": "0xffffffffc0a03000"
},
...
]
$ cat /proc/modules | jc --proc-modules -p -r
[
{
"module": "binfmt_misc",
"size": "24576",
"used": "1",
"used_by": [],
"status": "Live",
"location": "0xffffffffc0ab4000"
},
{
"module": "vsock_loopback",
"size": "16384",
"used": "0",
"used_by": [],
"status": "Live",
"location": "0xffffffffc0a14000"
},
{
"module": "vmw_vsock_virtio_transport_common",
"size": "36864",
"used": "1",
"used_by": [
"vsock_loopback"
],
"status": "Live",
"location": "0xffffffffc0a03000"
},
...
]
### parse
```python
def parse(data: str,
raw: bool = False,
quiet: bool = False) -> Union[List[Dict], Dict]
```
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:
Dictionary or List of Dictionaries. Raw or processed structured data.
### Parser Information
Compatibility: linux
Source: [`jc/parsers/proc.py`](https://github.com/kellyjonbrazil/jc/blob/master/jc/parsers/proc.py)
This parser can be used with the `--slurp` command-line option.
Version 1.3 by Kelly Brazil (kellyjonbrazil@gmail.com)