Necesito grep un directorio completo para una cadena y obtengo unos 50 resultados. Me gustaría colorear cada segunda línea, ya sea el color del texto o el color de fondo. Lo mejor sería una secuencia de comandos a la que pueda canalizar la salida de cualquier comando, y para que escuche el mismo resultado (aunque esté coloreado).Manera simple de colorear líneas de salida alternativas en bash
Respuesta
No es muy bonita, pero no el truco:
(guardar esta a foo.bash
y hacer grep whatever wherever | ./foo.bash
)
#!/bin/bash
while read line
do
echo -e "\e[1;31m$line"
read line
echo -e "\e[1;32m$line"
done
echo -en "\e[0m"
Aquí puede encontrar el list of color codes in bash.
Perl está instalado en muchos sistemas. Usted podría tener que alternan para usted:
grep -r whatever somedir/ | perl -pe '$_ = "\033[1;29m$_\033[0m" if($. % 2)'
En Perl $.
puede ser sustituido por $INPUT_LINE_NUMBER
si lo prefiere legibilidad.
y aquí es lo mismo en python;
import sys
for line_number,line in enumerate(sys.stdin.readlines()):
print '%s[1;3%dm%s%s[0m' % (chr(27),(line_number % 2+1),line,chr(27)),
¿Debo presumir líneas envueltas? Este script de shell utiliza un color de fondo de la paleta 256 color, para no interferir con otros resaltados que grep --color podría hacer.
#!/bin/sh
c=0
while read line; do
[ $(($c%2)) -eq 1 ] && printf "\033[48;5;60m"
printf "%s\033[0m\n" "$line"
c=$(($c+1))
done
Esto tiene la advertencia de que las barras invertidas etc., dentro de la línea serán destrozados, así tratar esto como pseudo código para la reimplementación
Hah , si hubiera sabido sobre color, probablemente no habría necesitado esto, pero ambos son buenos. Gracias por la buena solución. – naught101
- 1. Concatenar líneas en Bash
- 2. ¿Netbeans admite colorear para scripts .sh (bash)?
- 3. ¿Salida de lectura Bash?
- 4. Bash - redirección de salida
- 5. Líneas de continuación de Bash
- 6. truncar la salida en BASH
- 7. Captura de la salida de varias líneas en una variable Bash
- 8. Servidor de socket simple en Bash?
- 9. ¿Es posible colorear el flujo de salida a más?
- 10. AWK salida a bash Array
- 11. Cómo colorear la salida de estado de git?
- 12. Obtener salida de color en bash
- 13. asignación de múltiples líneas en bash
- 14. líneas Colorear en un ggplot agrupadas y facet_wrap
- 15. Problema con la redirección de salida Bash
- 16. Bash simple - para f * en
- 17. ¿Hay alguna manera de colorear comentarios/código en Sweave?
- 18. Ayuda de MacVim Command Window para colorear texto (salida Rspec)
- 19. bash pull ciertas líneas de un archivo
- 20. Seleccionar líneas aleatorias de un archivo en bash
- 21. etiqueta (? Simple) Colocación de gráficos de líneas
- 22. Usando salida de comandos previos en bash
- 23. Bash: patrón grep de salida de comando
- 24. salida json simple en rieles
- 25. Cómo colorear un píxel?
- 26. Habilitar color de salida bash con script Lua
- 27. ¿Cómo puedo escribir texto de varias líneas en mensajes de manera simple?
- 28. bash loop skip líneas comentadas
- 29. colocar una salida de varias líneas dentro de una variable
- 30. ¿Cómo ordenar con múltiples líneas en bash?
muy ordenado, también se puede utilizar como una función para evitar una segunda secuencia de comandos. –
Me gusta esto, pero se olvidó de restablecer después: echo -en '\ e [0m'; – naught101
@ naught101 buen punto, corregido ahora. – Kimvais