GNU/Linux >> Tutoriels Linux >  >> Linux

Comment grep avec la sortie couleur

L'une des commandes puissantes et largement utilisées dans le shell est grep. Il recherche dans un fichier d'entrée et fait correspondre les lignes dans lesquelles le motif donné est trouvé. Par défaut, tous les motifs correspondants sont imprimés sur stdout qui est généralement terminal. Nous pouvons également rediriger la sortie correspondante vers d'autres flux tels que file.

L'utilisation de base de grep est la suivante :

$ grep "some text" file.txt

grep est capable de surligner en couleur la chaîne correspondante dans sa sortie. Mais, par défaut, cette option est désactivée.

$ grep abc a_file.txt
abcdef

La —-couleur Le paramètre indique à grep de colorer les termes de recherche dans la sortie, ce qui les aide à se démarquer parmi tous les autres textes sur la ligne. Vous choisissez la couleur que vous voulez en utilisant le GREP_COLOR variable d'environnement :export GREP_COLOR=36 vous donne du cyan et export GREP_COLOR=32 vous donne du vert citron.

3 options de couleurs s'offrent à vous :

  • –color=auto
  • –color=toujours
  • –color=jamais

Avec color=always, il colore la chaîne correspondante.

$ grep --color=always abc a_file.txt
abcdef

Très souvent, vous souhaitez parcourir la sortie :

$ grep --color=always abc a_file.txt | less 
ESC[01;31mabcESC[00mdef
(END)

Le problème est que less ne comprend pas ces caractères de contrôle, par défaut. Vous devez utiliser le paramètre -R.

$ grep --color=always abc a_file.txt |less -R
abcdef

Sinon, utilisez plus.

$ grep --color=always abc a_file.txt | more 
abcdef

Un autre scénario problématique est lorsque vous souhaitez enregistrer la sortie grep dans un fichier. Le fichier de sortie contiendra ces caractères de contrôle.

$ grep --color=always abc a_file.txt > myoutput.txt
$ less myoutput.txt
ESC[01;31mabcESC[00mdef
myoutput.txt (END)

Avec color=auto, il affiche la couleur dans la sortie à moins que la sortie ne soit redirigée vers une commande ou redirigée vers un fichier.

Enfin, vous pouvez spécifier le paramètre de couleur dans une variable d'environnement spécifique à grep. Ensuite, vous n'avez pas à le saisir dans la ligne de commande.

$ export GREP_OPTIONS='--color=always' 

Remarque finale

La commande grep est l'une des commandes les plus utiles et les plus puissantes de l'arsenal Terminal. Son principe est simple :étant donné un ou plusieurs fichiers, imprimez toutes les lignes de ces fichiers qui correspondent à un modèle d'expression régulière particulier. Pour mettre en surbrillance le motif correspondant, utilisez l'option -color. Bien que la position de l'option n'ait pas d'importance, la convention est de placer les options en premier.


Linux
  1. Comment exécuter Grep avec plusieurs et modèles ?

  2. Comment mettre en surbrillance un mot dans la sortie de "cat" ? ?

  3. Comment démarrer Grep multi-thread dans le terminal ?

  4. Comment rechercher des fichiers avec la commande fd sous Linux

  5. Comment stocker le résultat de diff sous Linux

Comment utiliser Linux Cat Command (avec exemples)

8 Commande Linux Tee avec exemples

Comment rediriger la sortie de la commande shell

Comment puis-je grep récursivement?

Comment grep \n dans le fichier

Comment grep ps sortie avec des en-têtes