Est-il possible d'obtenir une sortie colorée à partir de la commande find ? Autrement dit, dans le chemin de chaque élément trouvé, les répertoires sont bleus, les scripts exécutables sont verts, et cetera? J'utilise la version 4.4.2 de GNU findutils .
Modifier - Pour clarifier, chaque résultat serait mis en surbrillance comme suit:
./path/to/file.sh
^ ^ ^
| | L green
blue
(si, par exemple, en cours d'exécution find . -type f
).
bfs
qui a cette fonctionnalité: github.com/tavianator/bfsRéponses:
MISE À JOUR: J'ai ajouté un nouveau script (différent) ...
Ignacio Vazquez-Abrams
avait un point: la question demande vraimentexecutable scripts are green, et cetera
... d'accord ... vous trouverez un tel script (prototype) à la fin de cette réponse.Cette première section (originale) porte sur
grc
etgrcat
.Cela devrait fonctionner;
grc
... (comme l' a souligné enzotib .. Le nom du package estgrc
... Le sous-utilitaire utilisé dans l'exemple estgrcat
L'exemple suivant s'imprime
./
en magentabin/cpp/
en cyanbigint
en blanc grasJe n'ai pas encore complètement trié la façon dont il gère le fichier de configuration, mais cela ressemble à ce qu'il fera ce que vous voulez (une fois que vous l'aurez apprivoisé) .. par exemple. pour un fichier sans sous-répertoire, et la séquence de couleurs ne semble pas être dans la même séquence que les expressions.
Je suppose que c'est possible (mais je suis un peu occupé en ce moment) ...
Voici le nouveau script inspiré d'Ignacio :)
Cela fonctionne si vous utilisez un seul chemin d'accès comme premier argument
find
.Il y a des problèmes UNTESTED dans ce script. Ce n'est qu'un concept.
Un problème est: Liens symboliques ... eaux troubles ...
En l'état, il imprime un
ERROR
lorsqu'il rencontre un type inconnu (par exemple, un lien symbolique), puis continue le traitement après cela.Merci
enzotib
pour lestput
exemples.la source
grcat
utilitaire dugrc
package :) Au début, j'ai eu quelques difficultés à comprendre ce que vous dites.Vous pouvez utiliser
-exec
pour faire la plupart de cela (ma solution ne colore pas la partie répertoire différemment). Si vous en avez-print
dans votrefind
commande, remplacez-la par-exec ls --color -d
; si vous utilisez l'impression implicite, ajoutez cela. Cela suppose que votrels
prend en charge l'--color
option.la source
Cela ne fait que mettre en évidence deux couleurs pour le chemin et le nom de fichier, pas la chose par type de fichier de
ls
:Configurez les couleurs de
grep
sortie de la bonne manière pour la partie correspondante et non correspondante, et faites correspondre le nom de fichier:Vous pouvez ne pas vouloir écraser la variable
GREP_COLORS
, alors ne la définissez que pourgrep
:(Les définitions de la variable obsolète
GREP_COLOR
ont moins de priorité que celles deGREP_COLORS
)Pour les codes de couleur, voir
colortest-16
de l'emballagecolortest
,et la section « Set Graphics Rendition » dans des séquences de commandes de terminal ANSI .
la source
J'ai aimé l'idée -exec. Je l'ai utilisé pour créer cette fonction:
la source