¿Es posible obtener resultados coloreados del comando find ? Es decir, en la ruta de cada elemento encontrado, los directorios son azules, los scripts ejecutables son verdes, etc. Estoy usando la versión 4.4.2 de GNU findutils .
Editar: para aclarar, cada resultado se resaltaría así:
./path/to/file.sh
^ ^ ^
| | L green
blue
(si, por ejemplo, ejecutando find . -type f
).
bfs
que tiene esta funcionalidad: github.com/tavianator/bfsRespuestas:
ACTUALIZACIÓN: agregué un nuevo guión (diferente) ...
Ignacio Vazquez-Abrams
tenía un punto: la pregunta realmente preguntaexecutable scripts are green, et cetera
... bueno ... encontrarás un guión (prototipo) al final de esta respuesta.Esta primera sección (original) trata sobre
grc
ygrcat
.Esto debería funcionar;
grc
... (como ha señalado enzotib ... El nombre del paquete esgrc
... La subutilidad utilizada en el ejemplo, esgrcat
El siguiente ejemplo imprime
./
en magentabin/cpp/
en cianbigint
en blanco negritaTodavía no he resuelto por completo cómo maneja su archivo de configuración, pero parece que hará lo que quiera (una vez que lo domestique) ... por ejemplo. para un archivo sin subdirectorio, y la secuencia de colores parece no estar en la misma secuencia que las expresiones.
Supongo que es posible (pero estoy un poco ocupado en este momento) ...
Aquí está el nuevo guión inspirado en Ignacio :)
Esto funciona si usa una sola ruta como primer argumento para
find
.Hay problemas no probados en este script. Es solo concepto.
Un problema es: Enlaces simbólicos ... aguas turbias ...
Tal como está, imprime un
ERROR
cuando encuentra un tipo desconocido (por ejemplo, un enlace simbólico), y luego continúa procesando más allá de eso.Gracias a
enzotib
por lostput
ejemplos.fuente
grcat
utilidad delgrc
paquete :) Al principio tuve algunas dificultades para entender lo que está diciendo.Podrías
-exec
hacer la mayor parte de eso (mi solución no colorea la parte del directorio de manera diferente). Si tiene-print
sufind
comando, reemplácelo por-exec ls --color -d
; Si está utilizando la impresión implícita, agréguela. Esto supone que suls
soporte es la--color
opción.fuente
Esto hace solo el resaltado de dos colores para la ruta y el nombre de archivo, no la cosa por tipo de archivo de
ls
:Configure los colores de
grep
salida de la manera correcta para partes coincidentes y no coincidentes, y haga coincidir el nombre del archivo:Es posible que no desee sobrescribir la variable
GREP_COLORS
, así que configúrela solo paragrep
:(Las definiciones de la variable obsoleta
GREP_COLOR
tienen menos prioridad que las deGREP_COLORS
)Para los códigos de color, consulte
colortest-16
desde el paquetecolortest
,y la sección "Conjunto de gráficos Rendition" de secuencias de comandos de terminal ANSI .
fuente
Me gustó la idea -exec. Lo usé para crear esta función:
fuente