JC, popüler komut satırı araçlarının çıktısını JSON'a dönüştürüyor
(github.com/kellyjonbrazil)JC JSON dönüştürücüsü özeti
jc, CLI araçlarının, dosya türlerinin ve genel dizgelerin çıktısını JSON biçimine dönüştürerek betiklerde daha kolay ayrıştırılmasını sağlar.digkomutunun örneği üzerinden JSON biçimine dönüştürülmüş çıktı görülebilir ve bu çıktıjqya dajellogibi araçlarla ek olarak işlenebilir.- Python kütüphanesi olarak da kullanılabilir; bu durumda JSON yerine Python sözlüğü, sözlük listesi veya sözlüklerin tembel yinelenebilir nesnesini döndürür.
JC JSON dönüştürücüsü nasıl kurulur
pip, işletim sistemi paket depoları veya ikili dosya indirme yoluyla kurulabilir.- Çeşitli Linux dağıtımları, macOS ve FreeBSD için kullanılabilecek kurulum komutları sunulur.
JC JSON dönüştürücüsü nasıl kullanılır
STDINüzerinden pipe edilen girdiyi alır ve önceki komutun çıktısınıSTDOUTüzerinden JSON biçiminde verir.- “Sihirli” söz dizimiyle komutun başına
jceklenerek dönüşüm yapılabilir veya/procdosya yolu önünde kullanılabilir. - Çeşitli parser seçenekleri ve slice özellikleriyle çıktı biçimi ayarlanabilir ve belirli satırlar işlenebilir.
JC JSON dönüştürücüsünün özellikleri
- Varsayılan ve ham veri gösterimleri sunar; şemaya göre bilinen sayıları int/float JSON değerlerine dönüştürür.
--rawseçeneği veyaraw=Trueparametresiyle ham, ön işlenmiş JSON'a erişilebilir.- Streaming parser sayesinde büyük komut çıktıları bellek açısından verimli şekilde işlenebilir.
JC JSON dönüştürücüsünün önemi
- Unix felsefesini 21. yüzyıla taşımayı amaçlayan projenin motivasyonu ve kullanım örnekleri blog yazıları ve röportajlarda görülebilir.
- Bash betikleri, Ansible, Saltstack, Nornir, FortiSOAR gibi çeşitli ortamlarda komut çıktısı ayrıştırmak için faydalıdır.
JC JSON dönüştürücüsünün uyumluluğu
- Bazı parser'lar platformdan bağımsız çalışır; platforma özgü çıktıları dönüştüren parser'lar ise uyumluluk uyarı mesajları üretebilir.
- Tüm parser bilgileri
jc -apçalıştırılarak görülebilir.
JC JSON dönüştürücüsüne nasıl katkı sağlanır
- Kod ya da parser ekleme/geliştirme katkıları memnuniyetle karşılanır;
jc/parsers/foo.pyveyajc/parsers/foo_s.pyşablon olarak kullanılarak pull request gönderilebilir.
GN⁺ görüşü
Bu yazıdaki en önemli nokta, jc aracının çeşitli komutların, dosya türlerinin ve dizgelerin çıktısını JSON'a dönüştürerek bunların programatik olarak işlenmesini sağlamasıdır. Bu, geliştiricilerin veriyi daha kolay ele almasına yardımcı olur ve özellikle Unix ile Linux ortamlarında betik yazarken faydalıdır. Yazıyı ilginç kılan şey, jc aracının yazılım geliştirme ve sistem yönetiminde otomasyon ile verimliliği önemli ölçüde artırabilecek bir araç olmasıdır.
1 yorum
Hacker News görüşleri
FreeBSD'de
libxokütüphanesi kullanılarak komut çıktısını JSON biçimine dönüştürme sorununu çözmelskomutu destekleniyordu, ancak sonradan kaldırıldığı örnekler var--jsonbayrağının standartlaşması gerektiği öne sürülüyorBakım zorluğuna dair endişeler dile getiriliyor
--<CMD>araç kullanımının yardım/metin ve kılavuzları karmaşıklaştırabileceği belirtiliyorNushell adlı araç tanıtılıyor
CLI araçlarının JSON çıktısını desteklemesine olumlu bakılıyor
jcaracının kullanım biçimi hakkında görüşjc dig example.comkullanımınındig example.com | jc --digyerine ana kullanım şekli olması gerektiği söyleniyorPowerShell'de tüm çıktının nesne olması özelliğine duyulan beğeni ifade ediliyor
jcaracının bakımını üstlenen kişiye saygı ifade ediliyor--jsonseçeneğini kabul eden modern Unix komut satırı araçlarının listesi soruluyorUnix'in tasarım kusurlarına dikkat çekiliyor
textfsmkullanılmamış olmasına şaşırılıyortextfsmyaygın olarak kullanılıyor