Coloreando globalmente la terminal por Regex

Coloreando globalmente la terminal por Regex

Sé que muchos programas usan color (vim, ack, color-ls, por nombrar algunos), pero todavía hay muchos casos en los que te quedas atascado con el blanco y negro.

Hay scripts que colorean la salida basándose en expresiones regulares (es decir, "hacen que todo lo que coincida con 'perro' sea rojo") pero deben invocarse con tuberías, por ejemplo: "> cat myfile | color dog red" y esto no sirve para nada. interactivo.

Lo que estoy buscando es algo que conecte el emulador de terminal (o un terminal que realmente haga esto) y coloree todo lo que coincida con una expresión regular determinada, independientemente del shell o programa que esté usando actualmente. Si esto también funciona con ncurses, sería fantástico. Tengo demasiados programas monocromáticos y sería fantástico si pudiera especificar una lista de palabras clave para resaltar/colorear cuando aparecen o se escriben.

Utilizo la consola Guake que probablemente usa la Terminal GNOME, no sé si GNOME ya tiene esta característica.

Respuesta1

La versión corta es:Sí, puedes canalizar la salida desde el shell, como cualquier otro programa.

A partir de ahí, puedes usar lo que quieras, como por ejemplo

$ bash | sed "$(echo -e "s@dog@\e[31mdog\e[0m@g; s@more here@more here@g;")"

Pensé en agregar mi "arcoíris". Disfrutar:

for((b=0;$b<8;b++)); do echo -ne "\e[4${b}m4$b : "; \
  for((f=0;$f<8;f++)); do echo -ne "\e[3${f}m3${f}"; done; echo -e "\e[0m"; done

Respuesta2

Todavía estoy buscando un emulador de terminal de Linux con esta característica, pero para aquellos que lean esto y estén en macOS X:

  • ConseguiriTerm2(querrás esto de todos modos si estás trabajando mucho en la línea de comandos en OS X), ve a "Configuración > Perfiles > Avanzado" y luego haz clic en "Editar" en "Disparadores". Allí puede agregar un activador con una expresión regular como ^.*\[ERROR\].*$y establecer la acción en "Resaltar texto" y el parámetro en algo como "Primer plano rojo".

Respuesta3

Probablemente haya mejores soluciones que esta, pero es posible que puedas resolver algo simple con expect:http://expect.nist.gov/. Hay bibliotecas esperadas disponibles para muchos otros lenguajes de programación/scripting si prefiere evitar TCL.

En general, TCL se utiliza para automatizar programas interactivos, pero también es posible hacerlos interactivos.

Te daría un código para empezar, pero yo no lo he usado desde hace bastante tiempo.

Respuesta4

Estoy bastante seguro de que KDE Konsole (al menos la versión KDE3) podría hacer esto, sin embargo, no veo soporte en KDE4.

poderhaz algo con grep como esto:

grep -C 99999 --color <whatever>

Esto debería resaltar las coincidencias pero tener tanto contexto como para ser el archivo completo.

información relacionada