Al utilizar grep --color=always
puedo obtener un bonito resaltado de color para las coincidencias de expresiones regulares.coincidencias de color con regularidad - sin omitir omisiones
Sin embargo, grep
solo devuelve líneas con al menos una coincidencia. En su lugar, estoy buscando una manera de simplemente resaltar las coincidencias de expresiones regulares, dejando todas las otras entradas por sí solas, sin dejar líneas sin ninguna coincidencia.
He intentado obtener color trabajando con sed
, y he leído la documentación de grep
, pero parece que no puedo obtener lo que quiero.
En el caso de la descripción de mi isnt obvio, quiero:
ENTRADA:
- Fred
- Ted
- roja
- llevan
Regex:
SALIDA "* rojo.":
- Fred (en rojo)
- Ted
- roja (en rojo)
- llevan
Para que yo pudiera hacer:
list_stuff | color_grep "make_this_stand_out_but_dont_hide_the_rest"
EDIT:
he encontrado una solución, que no es bonito, pero funciona:
Gracias a: http://www.pixelbeat.org/docs/terminal_colours/
Particularmente el guión (que he modificado/simplificado): http://www.pixelbeat.org/talks/iitui/sedgrep
function sedgrep()
{
C_PATT=`echo -e '\033[33;01m'`
C_NORM=`echo -e '\033[m'`
sed -s "s/$1/${C_PATT}&${C_NORM}/gi"
}
¡Todavía estoy buscando una forma más fácil de hacerlo!
Estoy usando bash, pero parece ser casi el mismo tipo de solución que el que publiqué. ¡Gracias! – mmocny