명령 행에서 XML을 강조 표시하려면 어떻게해야합니까?


14

stdin에서 XML을 강조 표시하려면 어떻게해야합니까 (예 :에서 파이프 됨 xmllint --format) stdout으로?

nanoview에서 작업을 강조 표시하는 방법을 알고 있지만 stdout으로 출력하고 종료되는 것이 있습니까?

내가 링크 할 것은 다음과 같은 것을 입력하는 것입니다.

xmllint --format xmlfile.xml | some-highlighter

또는 큰 파일의 경우

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

그리고 꽤 출력을 얻을 수 있습니다.

답변:


14

Supercatgrcat (grc)는 파이프 구문 강조를 수행 할 수 있습니다. XML 용 구성 파일을 만들거나 찾아야 할 것입니다. Ubuntu 리포지토리와 제공된 링크에서 모두 사용할 수 있습니다.

Pygmentize 에는 XML 강조 표시가 포함되어 있습니다. 우분투 저장소에서 또는을 사용하여 "python-pygments"로 사용할 수 있습니다 easy_install Pygments.

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

Pygmentize는 적어도 OS X에서는 -O encoding=UTF-8xmllint의 출력에서 ​​작동하도록 옵션 을 제공해야했지만 트릭을 수행했습니다. 감사!
Sietse

1
당신이 나와 같고 모든 출력 (Broken pipe)을 소비하지 않고 덜 빠져 나갈 때 불만을 피그 피하면서 불평하면 버퍼 ( apt-get install buffer)를 통해 파이프하십시오 . 예xmllint --format foo.xml |pygmentize -g |buffer |less -r
말리스

더 현대적인 우분투에서는 sudo apt install python-pygments설치하는 데 사용 했습니다.
MarkHu

9

다음은 GNU 소스 강조 표시를 사용하여 수행하는 방법입니다 .

source-highlight -i /tmp/foo.xml -f esc | 적은 -r

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

@ 위니, 대단해, ​​고마워 하나의 사소한 메모 : less -r(대답에 명시된대로) 대신 작업했습니다 less -F.
Anatoly Scherbakov

6

OSX 용 Homebrew 에서 하이라이트 를 찾았 으며 Ubuntu 리포지토리에서 사용할 수 있다고 확신합니다. 터미널 출력을 포함하여 다양한 형식으로 강조 표시하고 출력합니다.


2
pbpaste|xmllint --format -|highlight --out-format=ansi --syntax=xml나를 위해 트릭을했다. (I는하지만, 하이라이트의 색상 선택에 대해 주장 할 수 있습니다.)
tuomassalo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.