JC: Ausgabe beliebter Kommandozeilen-Tools in JSON umwandeln
(github.com/kellyjonbrazil)Zusammenfassung des JC-JSON-Konverters
jcwandelt die Ausgabe von CLI-Tools, Dateitypen und allgemeinen Zeichenketten in das JSON-Format um, damit sie in Skripten leichter geparst werden kann.- Anhand eines Beispiels mit dem Befehl
diglässt sich die in JSON umgewandelte Ausgabe ansehen; sie kann anschließend mit Tools wiejqoderjelloweiterverarbeitet werden. - Es kann auch als Python-Bibliothek verwendet werden; in diesem Fall gibt es statt JSON Python-Dictionaries, Listen von Dictionaries oder lazy iterierbare Objekte von Dictionaries zurück.
Installationsmethoden für den JC-JSON-Konverter
- Die Installation ist über
pip, OS-Paketquellen oder den Download von Binärdateien möglich. - Es werden Installationsbefehle für verschiedene Linux-Distributionen, macOS und FreeBSD bereitgestellt.
Verwendung des JC-JSON-Konverters
- Nimmt über
STDINweitergeleitete Eingaben entgegen und gibt die Ausgabe des vorherigen Befehls als JSON überSTDOUTaus. - Mit der „Magic“-Syntax kann
jcvor einen Befehl gesetzt werden, um dessen Ausgabe umzuwandeln; ebenso kann es vor einem/proc-Dateipfad verwendet werden. - Mit verschiedenen Parser-Optionen und Slice-Funktionen lassen sich Ausgabeformat anpassen und bestimmte Zeilen verarbeiten.
Eigenschaften des JC-JSON-Konverters
- Bietet standardmäßige und rohe Datendarstellungen und wandelt bekannte numerische Werte gemäß Schema in
int-/float-JSON-Werte um. - Über die Option
--rawoder den Parameterraw=Trueist Zugriff auf rohe, vorverarbeitete JSON-Daten möglich. - Streaming-Parser verarbeiten große Befehlsausgaben speichereffizient.
Warum der JC-JSON-Konverter wichtig ist
- Motivation und Anwendungsfälle des Projekts, das die Unix-Philosophie ins 21. Jahrhundert übertragen will, sind in Blogposts und Interviews zu finden.
- Nützlich zum Parsen von Befehlsausgaben in Umgebungen wie Bash-Scripting, Ansible, Saltstack, Nornir und FortiSOAR.
Kompatibilität des JC-JSON-Konverters
- Einige Parser funktionieren plattformunabhängig; Parser, die plattformspezifische Ausgaben umwandeln, können Warnmeldungen zur Kompatibilität erzeugen.
- Informationen zu allen Parsern lassen sich mit
jc -apanzeigen.
Wie man zum JC-JSON-Konverter beitragen kann
- Beiträge in Form von Code oder neuen/verbesserten Parsern sind willkommen; Pull Requests können mithilfe von
jc/parsers/foo.pyoderjc/parsers/foo_s.pyals Vorlage eingereicht werden.
Meinung von GN⁺
Das Wichtigste an diesem Beitrag ist, dass jc die Ausgabe unterschiedlichster Befehle, Dateitypen und Zeichenketten in JSON umwandelt und damit programmatisch nutzbar macht. Das erleichtert Entwicklerinnen und Entwicklern den Umgang mit Daten und ist besonders beim Scripting in Unix- und Linux-Umgebungen nützlich. Interessant ist der Beitrag, weil jc Automatisierung und Effizienz in der Softwareentwicklung und Systemadministration deutlich verbessern kann.
1 Kommentare
Hacker-News-Kommentar
Problem wird unter FreeBSD mithilfe der Bibliothek
libxogelöst, um Befehlsausgaben in das JSON-Format umzuwandelnlswurde unterstützt, es gab jedoch Fälle, in denen dies wieder entfernt wurde--jsonangesprochenBedenken hinsichtlich der Schwierigkeit der Wartung geäußert
--<CMD>könnte Hilfe/Manual unnötig kompliziert machenDas Tool Nushell wird vorgestellt
Positive Einschätzung dazu, dass CLI-Tools JSON-Ausgabe unterstützen
Meinung zur Verwendung des Tools
jcjc dig example.comsollte die bevorzugte Hauptnutzung sein stattdig example.com | jc --digVorliebe dafür geäußert, dass in PowerShell alle Ausgaben Objekte sind
Respekt gegenüber der Person, die die Wartung des Tools
jcübernimmtFrage nach einer Liste moderner Unix-Befehlszeilenprogramme, die die Option
--jsonakzeptierenHinweis auf einen Designfehler von Unix
Verwunderung darüber, dass
textfsmnicht verwendet wurdetextfsmwird häufig zum Parsen der CLI-Ausgaben von Netzwerkgeräten eingesetzt