ฉันจะเน้น XML บนบรรทัดคำสั่งได้อย่างไร


14

ฉันจะเน้น XML จาก stdin (เช่น pip จากxmllint --format) ถึง stdout ได้อย่างไร

ฉันรู้วิธีไฮไลต์การทำงานในnanoและviewแต่มีบางสิ่งที่เพิ่งส่งออกไปยัง stdout และออกหรือไม่

สิ่งที่ฉันจะเชื่อมโยงที่จะทำคือเพียงแค่พิมพ์สิ่งที่ชอบ

xmllint --format xmlfile.xml | some-highlighter

หรือบางทีสำหรับไฟล์ขนาดใหญ่

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

และรับเอาท์พุทสวย

คำตอบ:


14

Supercatและgrcat (grc) สามารถทำการเน้นไวยากรณ์ไปป์ไลน์ คุณอาจต้องสร้างหรือค้นหาไฟล์กำหนดค่าสำหรับ XML พวกเขาทั้งสองมีอยู่ในที่เก็บ Ubuntu และลิงก์ที่ให้ไว้

การแบ่งส่วนมีการเน้น XML รวมอยู่ด้วย มันมีอยู่ว่า "หลาม pygments" ในที่เก็บ Ubuntu easy_install Pygmentsหรือโดยการใช้

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

การหลอกลวงได้หลอกลวงสำหรับฉันแม้ว่าอย่างน้อยใน OS X ฉันต้องให้ตัวเลือก-O encoding=UTF-8เพื่อให้สามารถใช้งานได้กับเอาต์พุตของ xmllint ขอบคุณ!
Sietse

1
หากคุณเป็นเหมือนฉันและรำคาญใจด้วยการบ่นว่าเมื่อคุณออกจากการทำงานน้อยลงโดยไม่ต้องใช้เอาต์พุตทั้งหมด (Broken pipe) ไปป์ผ่าน buffer ( apt-get install buffer) เช่นxmllint --format foo.xml |pygmentize -g |buffer |less -r
Marlies

ใน Ubuntu ที่ทันสมัยกว่าฉันใช้sudo apt install python-pygmentsในการติดตั้ง
MarkHu

9

นี่คือวิธีที่คุณทำโดยใช้GNU Source-Highlightและน้อยกว่า:

source-highlight -i /tmp/foo.xml -f esc | น้อยกว่า

1
จาก stdin เป็นเพียงsource-highlight -s xml -f esc
MikeFHay

แม้ว่าที่จริงแล้วฉันกำลังหาesc256ผลผลิตที่น่าสนใจกว่าesc
MikeFHay

1
หมายเหตุสิ่งนี้จะไม่จัดรูปแบบ XML และหาก XML ของคุณอยู่ในหนึ่งบรรทัดมันจะทำให้source-highlightการทำงานช้ามาก มันอาจจะแยกวิเคราะห์บรรทัดอินพุตโดยบรรทัด คำสั่งนี้ให้ผลลัพธ์ที่ดีและรวดเร็วแก่ฉัน:xmllint --format - < input.xml | source-highlight -f esc -s xml | less -F
Winny

@ Winny ที่น่ากลัวขอบคุณ โน้ตเล็ก ๆ น้อย ๆ ที่หนึ่ง: ผมได้รับมันทำงานร่วมกับless -r(ตามที่ระบุไว้ในคำตอบ) less -Fแทน
Anatoly Scherbakov

6

ฉันพบไฮไลต์ใน Homebrew สำหรับ OSX และฉันแน่ใจว่ามันมีอยู่ในที่เก็บ Ubuntu มันจะเน้นและส่งออกไปยังหลายรูปแบบรวมถึงการออก terminal


2
pbpaste|xmllint --format -|highlight --out-format=ansi --syntax=xmlทำเคล็ดลับสำหรับฉัน (ฉันสามารถโต้เถียงเกี่ยวกับการเลือกสีของไฮไลท์ได้)
tuomassalo
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.