Komut satırında XML'yi nasıl vurgulayabilirim?


14

XML'yi stdin'den (örn. Borulu xmllint --format) stdout'a nasıl vurgulayabilirim ?

Vurgulamayı nasıl çalışacağımı biliyorum nanove viewancak stdout ve çıkışlara giden bir şey var mı?

Yapmak istediğim şey sadece

xmllint --format xmlfile.xml | some-highlighter

veya büyük dosyalar için

xmllint --format xmlfile.xml | some-highlighter | less

ve güzel çıktılar elde edin.

Yanıtlar:


14

Supercat ve grcat (grc) borulu sözdizimi vurgulama yapabilir. Muhtemelen XML için yapılandırma dosyaları oluşturmanız veya bulmanız gerekecektir. İkisi de Ubuntu depolarında ve sağlanan bağlantılarda mevcuttur.

Pygmentize , XML vurgulamasına sahiptir. Ubuntu depolarında veya kullanarak "python-pygments" olarak kullanılabilir easy_install Pygments.

xmllint --format xmlfile.xml | pygmentize -l xml | less

Pygmentize benim için hile yaptı, ancak en azından OS X'te, -O encoding=UTF-8xmllint'in çıktısında çalışması için bir seçenek sunmak zorunda kaldım . Teşekkürler!
Sietse

1
Eğer benim gibi iseniz ve tüm çıkışını (Kırık boru) tüketmeden daha az çıktığınızda şikayette bulunmaktan rahatsızlık duyuyorsanız, buffer ( apt-get install buffer) ile borulayın . Örn.xmllint --format foo.xml |pygmentize -g |buffer |less -r
Marlies

Daha modern Ubuntu'da, onu yüklerdim sudo apt install python-pygments.
MarkHu

9

GNU source-vurgu ve daha azını kullanarak bunu şu şekilde yapabilirsiniz :

source-vurgulama -i /tmp/foo.xml -f esc | daha az -r

1
Stdin, sadecesource-highlight -s xml -f esc
MikeFHay

Aslında, esc256esc
bulmama

1
Bu XML'i biçimlendirmez ve XML'iniz tek bir source-highlightsatırdaysa çok yavaş çalışmasına neden olur . Muhtemelen giriş satır satır ayrıştırılıyor. Bu komut bana iyi ve hızlı sonuçlar verdi:xmllint --format - < input.xml | source-highlight -f esc -s xml | less -F
Winny

@ Winny, bu harika, teşekkürler. Küçük bir not: Bunun less -ryerine (cevapta belirtildiği gibi) ile çalıştım less -F.
Anatoly Scherbakov

6

OSX için Homebrew'da vurgu buldum ve eminim Ubuntu deposunda mevcut. Terminal çıkışı da dahil olmak üzere bir dizi formatta vurgulama ve çıktılama yapar.


2
pbpaste|xmllint --format -|highlight --out-format=ansi --syntax=xmlbenim için hile yaptı. (Vurgulamanın renk seçenekleri hakkında tartışabilirim.)
tuomassalo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.