¿Cómo puedo resaltar XML de stdin (por ejemplo, canalizado desde xmllint --format) a stdout?
Sé cómo hacer resaltar trabajando en nanoy view, pero ¿hay algo que solo salga a stdout y salga?
Lo que me gustaría vincular es simplemente escribir algo como
xmllint --format xmlfile.xml | some-highlighter
o tal vez, para archivos grandes
xmllint --format xmlfile.xml | some-highlighter | less
y obtener una salida bonita.
command-line
xml
syntax-highlighting
Sietse
fuente
fuente

-O encoding=UTF-8de hacerlo funcionar en la salida de xmllint. ¡Gracias!apt-get install buffer). Por ejemploxmllint --format foo.xml |pygmentize -g |buffer |less -rsudo apt install python-pygmentsinstalarlo.Así es como lo haces usando GNU source-highlight y menos:
fuente
source-highlight -s xml -f escesc256produce una salida más bonita queescsource-highlightejecute muy lentamente. Probablemente está analizando la entrada línea por línea. Este comando me dio buenos y rápidos resultados:xmllint --format - < input.xml | source-highlight -f esc -s xml | less -Fless -r(como se indica en la respuesta) en lugar deless -F.Encontré lo más destacado en Homebrew para OSX, y estoy seguro de que está disponible en el repositorio de Ubuntu. Destaca y genera varios formatos, incluida la salida de terminal.
fuente
pbpaste|xmllint --format -|highlight --out-format=ansi --syntax=xmlhizo el truco para mí (Sin embargo, podría discutir sobre las opciones de color del resaltado.)