8 votes

Comment grep avec le nom de fichier surligné dans une couleur, et la correspondance surlignée dans une autre couleur ?

Sur Mac, je n'arrive pas à utiliser grep et que le nom du fichier soit mis en évidence (ou dans) une certaine couleur, et que la chaîne de caractères correspondante soit dans une couleur différente. Existe-t-il un moyen simple ?

4voto

Fabrice Points 31

Le grep d'OS X est trop obsolète : il ne prend pas en charge cette fonction.

Vous devez installer une version plus récente, par exemple à partir de HomeBrew.

brew install grep

Par défaut, le grep nouvellement installé s'appelle ggrep . Vous pouvez modifier ce comportement en ajoutant l'option --with-default-names .

Pour plus d'informations, voir https://superuser.com/a/419527 .

4voto

Faites passer votre grep par awk , on a alors awk colorer les champs.

Ejemplo:

grep -i "stuff" * | awk -F: '{ printf "\033[1;31m" $1 " \033[0m"; for(i=2;i<=NF;i++){out=out":"$i}; print out}'

1voto

Todd Dabney Points 920

La réponse à cette question se trouve déjà sur stackoverflow :

https://stackoverflow.com/questions/17236005/grep-output-with-multiple-colors

mais cela ne fonctionne que si vous pouvez faire correspondre les noms de fichiers à l'aide d'un ou de plusieurs motifs.

0voto

Organic Advocate Points 101

En utilisant gnu grep avec l'option --color=auto J'ai obtenu à la fois le terme de recherche coloré et le nom du fichier. Par exemple :

ggrep --color=auto -r 'searchKeyWord'

Si vous souhaitez toujours obtenir ce comportement, vous pouvez ajouter un alias dans le fichier ~/.bash_profile

alias grep="ggrep --color=auto"

Et utilisez la commande grep comme d'habitude

grep -r 'searchKeyWord'

Pour installer gnu grep, consultez la réponse de @Fabrice.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X