Try the
jc
web demo!
I’m happy to announce the release of jc
version 1.9.0 available on github and pypi. See below for more information on the new features and parsers.
To upgrade, run:
$ pip3 install --upgrade jc
jc
In The News!
The Linux Unplugged podcast gave a shoutout to jc
on their February 18, 2020 episode for their App Pick segment. The discussion starts at 45:47. Go check out the podcast!
New Parsers
jc
now includes 50 parsers! New parsers (tested on linux and OSX) include airport -I
, airport -s
, file
, ntpq -p
, and timedatectl
commands.
Documentation and schemas for all parsers can be found here.
airport -I
command parser
OSX support for the airport -I
command:
$ airport -I | jc --airport -p # or: jc -p airport -I { "agrctlrssi": -66, "agrextrssi": 0, "agrctlnoise": -90, "agrextnoise": 0, "state": "running", "op_mode": "station", "lasttxrate": 195, "maxrate": 867, "lastassocstatus": 0, "802_11_auth": "open", "link_auth": "wpa2-psk", "bssid": "3c:37:86:15:ad:f9", "ssid": "SnazzleDazzle", "mcs": 0, "channel": "48,80" }
airport -s
command parser
OSX support for the airport -s
command.
$ airport -s | jc --airport-s -p or: jc -p airport -s [ { "ssid": "DIRECT-4A-HP OfficeJet 3830", "bssid": "00:67:eb:2a:a7:3b", "rssi": -90, "channel": "6", "ht": true, "cc": "--", "security": [ "WPA2(PSK/AES/AES)" ] }, { "ssid": "Latitude38", "bssid": "c0:ff:d5:d2:7a:f3", "rssi": -85, "channel": "11", "ht": true, "cc": "US", "security": [ "WPA2(PSK/AES/AES)" ] }, { "ssid": "xfinitywifi", "bssid": "6e:e3:0e:b8:45:99", "rssi": -83, "channel": "11", "ht": true, "cc": "US", "security": [ "NONE" ] }, ... ]
file
command parser
Linux and OSX support for the file
command:
$ file * | jc --file -p or: jc -p file * [ { "filename": "Applications", "type": "directory" }, { "filename": "another file with spaces", "type": "empty" }, { "filename": "argstest.py", "type": "Python script text executable, ASCII text" }, { "filename": "blkid-p.out", "type": "ASCII text" }, { "filename": "blkid-pi.out", "type": "ASCII text, with very long lines" }, { "filename": "cd_catalog.xml", "type": "XML 1.0 document text, ASCII text, with CRLF line terminators" }, { "filename": "centosserial.sh", "type": "Bourne-Again shell script text executable, UTF-8 Unicode text" }, ... ]
ntpq
command parser
Linux support for the ntpq -p
command.
$ ntpq -p | jc --ntpq -p # or: jc -p ntpq -p [ { "remote": "44.190.6.254", "refid": "127.67.113.92", "st": 2, "t": "u", "when": 1, "poll": 64, "reach": 1, "delay": 23.399, "offset": -2.805, "jitter": 2.131, "state": null }, { "remote": "mirror1.sjc02.s", "refid": "216.218.254.202", "st": 2, "t": "u", "when": 2, "poll": 64, "reach": 1, "delay": 29.325, "offset": 1.044, "jitter": 4.069, "state": null } ]
timedatectl
command parser
Linux support for the timedatectl
command:
$ timedatectl | jc --timedatectl -p # or: jc -p timedatectl { "local_time": "Tue 2020-03-10 17:53:21 PDT", "universal_time": "Wed 2020-03-11 00:53:21 UTC", "rtc_time": "Wed 2020-03-11 00:53:21", "time_zone": "America/Los_Angeles (PDT, -0700)", "ntp_enabled": true, "ntp_synchronized": true, "rtc_in_local_tz": false, "dst_active": true }
Updated Parsers
No updated parsers in this release.
Schema Changes
There are no schema changes in this release.
Full Parser List
airport -I
airport -s
arp
blkid
crontab
crontab-u
CSV
df
dig
du
env
file
free
fstab
/etc/group
/etc/gshadow
history
/etc/hosts
id
ifconfig
INI
iptables
jobs
last
andlastb
ls
lsblk
lsmod
lsof
mount
netstat
ntpq
/etc/passwd
pip list
pip show
ps
route
/etc/shadow
ss
stat
systemctl
systemctl list-jobs
systemctl list-sockets
systemctl list-unit-files
timedatectl
uname -a
uptime
w
who
XML
YAML
For more information on the motivations for creating
jc
, see my blog post.
Happy parsing!