linux - pdfgrep - Conservar el color después de pasar grep a grep
bash colors (3)
Un consejo:
Cuando se utiliza grep --color=always
, las cadenas reales que se pasan a la siguiente tubería se cambiarán. Esto puede llevar a la siguiente situación:
$ grep --color=always -e ''1'' * | grep -ve ''12''
11
12
13
Aunque la opción -ve ''12''
debería excluir la línea media, no lo hará porque hay caracteres de color entre 1
y 2
.
Hay una pregunta similar en Preserve ls coloring after grep''ing, pero me molesta que si canalizas la salida grep coloreada en otro grep, no se preserve la coloración.
Como ejemplo grep --color WORD * | grep -v AVOID
grep --color WORD * | grep -v AVOID
no conserva el color de la primera salida. Pero para mí ls | grep FILE
ls | grep FILE
mantener el color, ¿por qué la diferencia?
aunque un poco ''hack-ish'', también funciona simplemente para repetir el comando grep al final de tu pipe.
grep WORD * | grep -v AVOID | grep WORD
grep
veces desactiva la salida de color, por ejemplo cuando se escribe en una tubería. Puede anular este comportamiento con grep --color=always
La línea de comando correcta sería
grep --color=always WORD * | grep -v AVOID
Esto es bastante detallado, o puedes agregar la línea
alias cgrep="grep --color=always"
a tu .bashrc
por ejemplo y usa cgrep
como grep de color. Al redefinir grep
, puede tener problemas con los scripts que dependen de la salida específica de grep
y no les gusta el código de escape ascii.