0 votos

Añadir colores a la salida de los comandos CLI existentes

Me gustaría crear una función / alias que colorea la salida de otro comando. Hay una manera de hacer esto?

Por ejemplo, tomemos el alias cuyo resultado es algo parecido a esto:

Original

En el bash/zsh estándar, todo esto está en el mismo color. Sin embargo, me gustaría ajustar la salida para que la parte anterior al propio alias (la parte anterior al = ) es de color verde, y el comando aliased (la parte que sigue a = ) es rojo, por ejemplo.

Obviamente, alias es sólo un ejemplo, ya que me gustaría añadir colores a otros comandos.

Mi solución actual utiliza awk :

alias | awk -F"=" '{print "\033[1;32m" $1 "\033[0m=\033[1;31m"$2"\033[0m "}'

MWE

No lo encuentro especialmente atractivo (sobre todo los códigos de colores). También parece que este enfoque será mucho más complicado para los comandos más complejos (por ejemplo, añadir la salida de color a top o ps ) y tampoco parece muy sostenible a largo plazo.

¿Alguna idea sobre cómo hacer esto mejor / más fácil?

PD: Supongo que esta es una pregunta de terminal de Unix/Linux en general, pero como trabajo principalmente en OS X, he decidido empezar a preguntar aquí...


EDITAR : Ahora he encontrado este respuesta, que propone el uso de funciones para hacer awk la salida se ve más bonita. Sin embargo, no estoy seguro de si quiero tener un montón de funciones de formato fantasma alrededor de mi terminal. Todavía espero algo más limpio...

Este es su ejemplo:

function red(s) {
    printf "\033[1;31m" s "\033[0m "
}

function green(s) {
    printf "\033[1;32m" s "\033[0m "
}

{
    print red($1), green($2), blue($3)
}

1voto

JMY1000 Puntos 1205

Especialmente porque ya estás usando zsh recomendaría utilizar el marco de resaltadores existente (y los resaltadores incorporados) de zsh-syntax-highlighting o fast-syntax-highlighting Basándose en una revisión preliminar, ambos deberían tener suficiente documentación para permitirle configurar su entorno preferido.

Aquí hay una captura de pantalla de zsh-syntax-highlighting operando en el comando de análisis que usted proporcionó (meta, ¿verdad?)

enter image description here

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X