jc(1) JSON Convert jc(1) (NAME) jc - JSON (SYNOPSIS) : COMMAND | jc [SLICE] [OPTIONS] PARSER cat FILE | jc [SLICE] [OPTIONS] PARSER echo STRING | jc [SLICE] [OPTIONS] PARSER (Magic): jc [SLICE] [OPTIONS] COMMAND jc [SLICE] [OPTIONS] /proc/ (DESCRIPTION) jc JSON . jc STDIN JSON STDOUT . jc << >> . jc . (: ) (OPTIONS) (Parsers): --acpi `acpi` --airport `airport -I` --airport-s `airport -s` --amixer `amixer` --apt-cache-show `apt-cache show` --apt-get-sqq `apt-get -sqq` --arp `arp` --asciitable ASCII Unicode --asciitable-m ASCII Unicode --blkid `blkid` --bluetoothctl `bluetoothctl` --cbt `cbt` (Google Bigtable) --cef CEF --cef-s (streaming) CEF --certbot `certbot` --chage `chage --list` --cksum `cksum` `sum` --clf Common Combined Log Format --clf-s Common Combined Log Format --crontab `crontab` --crontab-u `crontab` --csv CSV --csv-ih CSV (implicit header) --csv-s CSV --csv-ih-s CSV --curl-head `curl --head` --date `date` --datetime-iso ISO 8601 --debconf-show `debconf-show`.TP --df `df` --dig `dig` --dir `dir` --dmidecode `dmidecode` --dpkg-l `dpkg -l` --du `du` --efibootmgr `efibootmgr` --email-address --env `env` --ethtool `ethtool` --file `file` --find `find` --findmnt `findmnt` --finger `finger` --free `free` --fstab `/etc/fstab` --git-log `git log` --git-log-s `git log` --git-ls-remote `git ls-remote` --gpg `gpg --with- colons` --group `/etc/group` --gshadow `/etc/gshadow` --hash `hash` --hashsum hashsum (`md5sum` `shasum` ) --hciconfig `hciconfig` --history `history` --host `host` --hosts `/etc/hosts` --http-headers HTTP --id `id` --ifconfig `ifconfig` --ini INI --ini-dup INI --iostat `iostat` --iostat-s `iostat` --ip-address IPv4 IPv6.TP --ipconfig `ipconfig` --iptables `iptables` --ip-route `ip route` --iw-scan `iw dev [device] scan` --iwconfig `iwconfig` --jar-manifest MANIFEST.MF --jobs `jobs` --jwt JWT --kv / --kv-dup / --last `last` `lastb` --ls `ls` --ls-s `ls` --lsattr `lsattr` --lsb-release `lsb_release` --lsblk `lsblk` --lsmod `lsmod` --lsof `lsof` --lspci `lspci -mmv` --lsusb `lsusb` --m3u M3U M3U8 --mdadm `mdadm` --mount `mount` --mpstat `mpstat` --mpstat-s `mpstat` --needrestart `needrestart -b` --netstat `netstat` --net-localgroup `net localgroup` --net-user `net user` --nmcli `nmcli` --nsd-control `nsd- control` --ntpq `ntpq -p` --openvpn openvpn- status.log --os-prober `os- prober` --os-release `/etc/os- release` --pacman `pacman`.TP --passwd `/etc/passwd` --path POSIX --path-list POSIX --pci-ids `pci.ids` --pgpass PostgreSQL --pidstat `pidstat -H` --pidstat-s `pidstat -H` --ping `ping` `ping6` --ping-s `ping` `ping6` --pip-list `pip list` --pip-show `pip show` --pkg-index-apk Alpine Linux --pkg-index-deb Debian --plist PLIST --postconf `postconf -M` --proc `/proc/` --proc-buddyinfo `/proc/buddyinfo` --proc-cmdline `/proc/cmdline` --proc-consoles `/proc/consoles` --proc-cpuinfo `/proc/cpuinfo` --proc-crypto `/proc/crypto` --proc-devices `/proc/devices` --proc-diskstats `/proc/diskstats` --proc-filesystems `/proc/filesystems` --proc-interrupts `/proc/interrupts` --proc-iomem `/proc/iomem` --proc-ioports `/proc/ioports` --proc-loadavg `/proc/loadavg` --proc-locks `/proc/locks` --proc-meminfo `/proc/meminfo` --proc-modules `/proc/modules` --proc-mtrr `/proc/mtrr` --proc-pagetypeinfo `/proc/pagetypeinfo` --proc-partitions `/proc/partitions` --proc-slabinfo `/proc/slabinfo` --proc-softirqs `/proc/softirqs`.TP --proc-stat `/proc/stat` --proc-swaps `/proc/swaps` --proc-uptime `/proc/uptime` --proc-version `/proc/version` --proc-vmallocinfo `/proc/vmallocinfo` --proc-vmstat `/proc/vmstat` --proc-zoneinfo `/proc/zoneinfo` --proc-driver-rtc `/proc/driver/rtc` --proc-net-arp `/proc/net/arp` --proc-net-dev `/proc/net/dev` --proc-net-dev-mcast `/proc/net/dev_mcast` --proc-net-if-inet6 `/proc/net/if_inet6` --proc-net-igmp `/proc/net/igmp` --proc-net-igmp6 `/proc/net/igmp6` --proc-net-ipv6-route `/proc/net/ipv6_route` --proc-net-netlink `/proc/net/netlink` --proc-net-netstat `/proc/net/netstat` --proc-net-packet `/proc/net/packet` --proc-net-protocols `/proc/net/protocols` --proc-net-route `/proc/net/route` --proc-net-tcp `/proc/net/tcp` `/proc/net/tcp6` --proc-net-unix `/proc/net/unix` --proc-pid-fdinfo `/proc//fdinfo/` --proc-pid-io `/proc//io` --proc-pid-maps `/proc//maps` --proc-pid-mountinfo `/proc//mountinfo` --proc-pid-numa-maps `/proc//numa_maps` --proc-pid-smaps `/proc//smaps` --proc-pid-stat `/proc//stat` --proc-pid-statm `/proc//statm` --proc-pid-status `/proc//status` --ps `ps` --resolve-conf `/etc/resolve.conf` --route `route` --route-print `route print` --rpm-qi `rpm -qi`.TP --rsync `rsync` --rsync-s `rsync` --semver Semantic Version --sfdisk `sfdisk` --shadow `/etc/shadow` --srt SRT --ss `ss` --ssh-conf `ssh` `ssh -G` --sshd-conf `sshd` `sshd -T` --stat `stat` --stat-s `stat` --swapon `swapon` --sysctl `sysctl` --syslog Syslog RFC 5424 --syslog-s Syslog RFC 5424 --syslog-bsd Syslog RFC 3164 --syslog-bsd-s Syslog RFC 3164 --systemctl `systemctl` --systemctl-lj `systemctl list-jobs` --systemctl-ls `systemctl list-sockets` --systemctl-luf `systemctl list-unit-files` --systeminfo `systeminfo` --time `/usr/bin/time` --timedatectl `timedatectl status` --timestamp Unix Epoch --toml TOML --top `top -b` --top-s `top -b` --tracepath `tracepath` `tracepath6` --traceroute `traceroute` `traceroute6` --traceroute-s `traceroute` `traceroute6` --tsv TSV --tsv-ih TSV --tsv-s TSV --tsv-ih-s TSV --tune2fs `tune2fs -l`.TP --typeset `typeset` `declare` --udevadm `udevadm info` --ufw `ufw status` --ufw-appinfo `ufw app info [application]` --uname `uname -a` --update-alt-gs `update- alternatives --get-selections` --update-alt-q `update- alternatives --query` --upower `upower` --uptime `uptime` --url URL --ver --veracrypt `veracrypt` --vmstat `vmstat` --vmstat-s `vmstat` --w `w` --wc `wc` --wg-show `wg show` --who `who` --x509-cert X.509 PEM DER --x509-crl (CRL) X.509 PEM DER --x509-csr (CSR) X.509 PEM DER --xml XML --xrandr `xrandr` --yaml YAML --zipinfo `zipinfo` --zpool-iostat `zpool iostat` --zpool-status `zpool status` : -a, --about jc ( JSON YAML) -C, --force-color ( -m NO_COLOR ) -d, --debug - (traceback) ( -dd ) -h, --help (--help --parser_name ). ( -hh). ( -hhh). -m, --monochrome -M, --meta-out . -p, --pretty (pretty-print) -q, --quiet . ( -qq ) -r, --raw . .TP -s, --slurp (slurp) . ( -hhh ) -u, --unbuffer ( ) -v, --version -y, --yaml-out YAML -B, --bash-comp Bash -Z, --zsh-comp Zsh (Slice): START:STOP (slicing) Python . / STDIN jc . START STOP . . . : $ cat table.txt ### We want to skip this header ### col1 col2 foo 1 bar 2 ### We want to skip this footer ### $ cat table.txt | jc 1:-1 --asciitable [{"col1":"foo","col2":"1"},{"col1":"bar","col2":"2"}] $ cat table.txt | jc 1:4 --asciitable [{"col1":"foo","col2":"1"},{"col1":"bar","col2":"2"}] 1:-1 1:4 . STOP (non- inclusive). 0 . -1 . Python . : START:STOP START STOP - 1 START: START :STOP STOP - 1 -START:STOP START STOP - 1 START:-STOP START STOP -START:-STOP START STOP -START: START :-STOP STOP : .SH " (SLURP)" . (Slurping) ( url ip-address). --slurp jc -hhh . IP ( ) --slurp jc : $ cat ip-addresses.txt | jc --slurp --ip-address [] /proc ( --slurp ). PID : $ jc /proc/*/status [] /proc _file . --meta-out . : { "result": [], "_jc_meta": { "parser": "url", "timestamp": 1706235558.654576, "slice_start": null, "slice_end": null, "input_list": [ "http://www.google.com", "https://www.apple.com", "https://www.microsoft.com" ] } } --meta-out input_list ( /proc) /proc . (EXIT CODES) jc 100 0 . <<>> ( jc ifconfig eth0) jc jc . jc . ifconfig : ifconfig = 0 jc = 0 = 0 ( ) ifconfig = 1 jc = 0 = 1 ( ifconfig) ifconfig = 0 jc = 100 = 100 ( jc) ifconfig = 1 jc = 100 = 101 ( ifconfig jc) <<>> --meta-out -M . _jc_meta . ping : $ jc --meta-out -p ping -c2 192.168.1.252 { "destination_ip": "192.168.1.252", "data_bytes": 56, "pattern": null, "destination": "192.168.1.252", "packets_transmitted": 2, "packets_received": 0, "packet_loss_percent": 100.0, "duplicates": 0, "responses": [ { "type": "timeout", "icmp_seq": 0, "duplicate": false } ], "_jc_meta": { "parser": "ping", "timestamp": 1661357115.27949, "magic_command": [ "ping", "-c2", "192.168.1.252" ], "magic_command_exit": 2 } } $ echo $? 2 JC_COLORS . JC_COLORS : JC_COLORS=,,, : black red green yellow blue magenta cyan gray brightblack brightred brightgreen brightyellow brightblue brightmagenta brightcyan white default : JC_COLORS=blue,brightblack,magenta,green JC_COLORS=default,default,default,default NO_COLOR jc . -C NO_COLOR -m . (STREAMING PARSERS) STDIN JSON . ( ls-s ping-s ) STDIN JSON Lines ( NDJSON) . ( ls -lR /) . . : <<>> (magic syntax) . (pipe) . -qq . _jc_meta success JSON . success true . success false error line : -qq: { "command_data": "data", "_jc_meta": { "success": true } } -qq: { "_jc_meta": { "success": false, "error": "error message", "line": "original line data" } } (pipe) . . () . pipe ( ping) : $ ping 1.1.1.1 | jc --ping-s | jq jc jq . -u ( / unbuffer) : $ ping 1.1.1.1 | jc --ping-s -u | jq {"type":"reply","pattern":null,"timestamp":null,"bytes":"64",...} {"type":"reply","pattern":null,"timestamp":null,"bytes":"64",...} etc... : . jc/jcparsers << >> : - Linux/unix: $HOME/.local/share/jc/jcparsers - macOS: $HOME/Library/Application Support/jc/jcparsers - Windows: $LOCALAPPDATA\jc\jc\jcparsers python . jc/parsers/foo.py jc/parsers/foo_s.py () .py jcparsers . jc jcparsers (import) . python (_) . . : XDG Base Directory Specification . (CAVEATS) (Locale) LC_ALL locale C en_US.UTF-8 : $ LC_ALL=C date | jc --date locale : $ export LANG=C $ export LC_NUMERIC=C locale C UTF-8 UTF-8 \u ASCII . (Timezones) (timestamp) epoch . _utc (naive) ( jc ). UTC _utc . ( epoch_utc). . (EXAMPLES) : $ dig www.google.com | jc -p --dig $ cat /proc/meminfo | jc --pretty --proc (Magic Syntax): $ jc --pretty dig www.google.com $ jc --pretty /proc/meminfo (Line Slicing): $ cat file.csv | jc :101 --csv # parse first 100 lines : $ jc --help --dig : $ jc -hh # show hidden parsers $ jc -hhh # list parsers by category tags Kelly Brazil (kellyjonbrazil@gmail.com) https://github.com/kellyjonbrazil/jc (COPYRIGHT) (c) 2019-2026 Kelly Brazil : MIT 1.25.7 2026-06-18 jc(1)