GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo grep con salida de color

Uno de los comandos poderosos y ampliamente utilizados en Shell es grep. Busca en un archivo de entrada y hace coincidir las líneas en las que se encuentra el patrón dado. De forma predeterminada, todos los patrones coincidentes se imprimen en la salida estándar, que suele ser terminal. También podemos redirigir la salida coincidente a otras transmisiones, como un archivo.

El uso básico de grep es este:

$ grep "some text" file.txt

grep es capaz de resaltar en color la cadena coincidente en su salida. Pero, de forma predeterminada, esa opción está desactivada.

$ grep abc a_file.txt
abcdef

El —-color El parámetro le dice a grep que coloree los términos de búsqueda en la salida, lo que los ayuda a destacar entre el resto del texto en la línea. Tú eliges qué color quieres usando el GREP_COLOR variable de entorno:export GREP_COLOR=36 te da cian, y export GREP_COLOR=32 te da verde lima.

Hay 3 opciones de color disponibles para usted:

  • –color=automático
  • –color=siempre
  • –color=nunca

Con color=always, colorea la cadena coincidente.

$ grep --color=always abc a_file.txt
abcdef

Muy a menudo, desea pasar página a través de la salida:

$ grep --color=always abc a_file.txt | less 
ESC[01;31mabcESC[00mdef
(END)

El problema es que less no entiende esos caracteres de control, por defecto. Necesitas usar el parámetro -R.

$ grep --color=always abc a_file.txt |less -R
abcdef

Alternativamente, use más.

$ grep --color=always abc a_file.txt | more 
abcdef

Otro escenario problemático es cuando desea guardar la salida grep en un archivo. El archivo de salida contendrá esos caracteres de control.

$ grep --color=always abc a_file.txt > myoutput.txt
$ less myoutput.txt
ESC[01;31mabcESC[00mdef
myoutput.txt (END)

Con color=auto, muestra el color en la salida a menos que la salida se canalice a un comando o se redirija a un archivo.

Por último, puede especificar el parámetro de color en una variable de entorno específica de grep. Entonces, no tiene que ingresarlo en la línea de comando.

$ export GREP_OPTIONS='--color=always' 

Nota final

El comando grep es uno de los más consistentemente útiles y poderosos en el arsenal de Terminal. Su premisa es simple:dado uno o más archivos, imprime todas las líneas en esos archivos que coincidan con un patrón de expresión regular en particular. Para resaltar el patrón coincidente, use la opción -color. Si bien la posición de la opción no importa, la convención es colocar las opciones primero.


Linux
  1. ¿Cómo ejecutar Grep con patrones múltiples y?

  2. ¿Cómo iniciar Grep de subprocesos múltiples en la terminal?

  3. Cómo almacenar el resultado de diff en Linux

  4. ¿Cómo buscar contenido después del patrón?

  5. salida grep de largo a ancho

Cómo usar el comando Cat de Linux (con ejemplos)

8 Comando Tee de Linux con ejemplos

Cómo redirigir la salida del comando de shell

Cómo redirigir la salida completa de spark-submit a un archivo

¿Cómo copiar la salida del terminal?

Cómo grep salida ps con encabezados