Pregunta

Si lo hago

$ ls -l --color=always

consigo una lista de archivos dentro del directorio con un poco de buen color para diferentes tipos de archivos, etc ..

Ahora, yo quiero ser capaz de canalizar la salida de color de ls través grep para filtrar algunos archivos que no necesito. La clave es que todavía quiero preservar la coloración después del filtro grep.

$ ls -l --color=always | grep -E some_regex

^ pierdo la coloración después de grep

EDIT: Estoy usando sin cabeza-servidor de Ubuntu 8.10, Bash 3.2.39, más o menos instalar un archivo sin configuraciones de lujo

¿Fue útil?

Solución

Su grep es, probablemente, la eliminación códigos de color ls 's porque tiene su propia coloración encendida.

"podría" hacer esto:

ls -l --color=always | grep --color=never pattern

Sin embargo, es muy importante que entienda exactamente lo que estás grep de ping aquí. No sólo es glob de ping <=> innecesaria (utilizar un <=> en su lugar), este caso particular es <=> de ping no sólo a través de los nombres de archivo y las estadísticas de archivos, sino también a través de los códigos de colores añadidos por <=>

La verdadera respuesta a su pregunta es: No se <=>. Nunca hay una necesidad de tubería <=> en cualquier cosa o capturar su salida. <=> sólo se diseñó para la interpretación humana (por ejemplo. A buscar a en un interactivo solamente la cáscara, y para ello es muy útil, por supuesto). Como se mencionó antes, puede filtrar qué archivos <=> enumera mediante el uso de globos:

ls -l *.txt      # Show all files with filenames ending with `.txt'.
ls -l !(foo).txt # Show all files with filenames that end on `.txt' but aren't `foo.txt'. (This requires `shopt -s extglob` to be on, you can put it in ~/.bashrc)

muy recomendamos que lea estas dos excelentes documentos sobre la materia:

Otros consejos

Debe comprobar si realmente están utilizando los ls "reales", con sólo llamar directamente el binario:

/bin/ls ....

Debido a:. El código que ha descrito realmente debería funcionar, a menos que ignora ls -color = Siempre por alguna extraña razón o error

Sospecho que algunos alias o función que añade (directamente oa través de una variable) algunas opciones. Vuelva a comprobar que este no es el caso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top