• Utiliser la commande GREP

    La commande grep ( General Regular Expression Parser ) est une commande que j'utilise beaucoup dans mes scripts.

    Cette commande permet de rechercher dans des fichiers des chaînes de caractères ( mot complet, suite de lettres, phrases, chiffres...) ou une expression régulière.

    man « grep »

    Je ne vais énumérer dans ce tutoriel que quelques exemples d'utilisation de la commande grep.

    Pour le tutoriel, je vais utiliser le fichier contenant les informations sur les utilisateurs du système ( /etc/passwd ) et le fichier contenant les informations sur les groupes du système ( /etc/group ).

    Pour commencer, je vais chercher la ligne contenant les informations de l'utilisateur mickael.

    grep mickael /etc/passwd

     

    Utiliser la commande GREP

      ( cliquer sur l'image pour l'agrandir ) 

     

    J'effectue la même recherche en entrant uniquement les 3 premières lettres.

    grep mic /etc/passwd

     

    Utiliser la commande GREP

     ( cliquer sur l'image pour l'agrandir )

     

    Grep étant sensible à la casse ( (majuscules / minuscules ), il faudra utiliser l'option -i pour ignorer la casse.

    Je mélange ici des majuscules / minuscules dans ma recherche.

    grep -i MickAel /etc/passwd

    grep -i MICkael /etc/passwd

     

    Utiliser la commande GREP

     ( cliquer sur l'image pour l'agrandir ) 

     

    Je vais maintenant rechercher les lignes contenant les informations des utilisateurs mickael ou root.

    Pour cela, je peux utiliser 2 syntaxes ( le pipe désignant la fonction ou ) :

    grep 'mickael\|root' /etc/passwd

     

    Utiliser la commande GREP

      ( cliquer sur l'image pour l'agrandir ) 

     

    grep -E 'mickael|root' /etc/passwd

    L'option -E désignant que l'on utilise une expression régulière.

     

    Utiliser la commande GREP

      ( cliquer sur l'image pour l'agrandir ) 

     

    Je vais maintenant rechercher la chaîne mickael dans les fichiers /etc/passwd et /etc/group.

    grep mickael /etc/passwd /etc/group

     

    Utiliser la commande GREP

       ( cliquer sur l'image pour l'agrandir ) 

     

    Je vais compter le nombre de lignes contenant la chaîne mickael dans /etc/group.

    grep -c mickael /etc/group

    Commande qui me retourne 8 lignes contenant la chaîne mickael.

     

    Utiliser la commande GREP

      ( cliquer sur l'image pour l'agrandir ) 

     

    Je vérifie le résultat.

    grep mickael /etc/group

     

    Utiliser la commande GREP

     ( cliquer sur l'image pour l'agrandir ) 

     

    Maintenant, je vais afficher toutes les lignes de /etc/passwd sauf celle contenant la chaîne mickael.

    grep -v mickael /etc/passwd

    Vous pouvez voir que toutes les lignes sont bien affichées sauf celle contenant mickael.

     

    Utiliser la commande GREP

     ( cliquer sur l'image pour l'agrandir ) 

     

    Utiliser la commande GREP

      ( cliquer sur l'image pour l'agrandir ) 

     

    Je recherche le numéro de ligne contenant la chaîne mickael.

    grep -n mickael /etc/passwd 

    Vous pouvez voir que la chaîne se trouve à la 34ème ligne.

     

    Utiliser la commande GREP

      ( cliquer sur l'image pour l'agrandir ) 

     

    Utiliser la commande GREP

     ( cliquer sur l'image pour l'agrandir ) 

     

    Pour effectuer une recherche récursive, il faudra utiliser l'option -r ou -R.

    Ici, je vais rechercher la chaîne mickael dans chaque dossier/fichier situé dans le répertoire /etc.

    sudo grep -r mickael /etc

    Vous pouvez voir en retour le nom des différents fichiers dans lesquels la chaîne mickael a été trouvée.

     

    Utiliser la commande GREP

      ( cliquer sur l'image pour l'agrandir ) 

     

    Je recherche les lignes se terminant par mickael dans /etc/group.

    Le $ derrière la chaîne recherchée représente la fin de la ligne.

    grep mickael$ /etc/group

     

    Utiliser la commande GREP

       ( cliquer sur l'image pour l'agrandir ) 

     

    Je recherche les lignes commençant par mickael dans /etc/group.

    Le ^ devant la chaîne recherchée représente le début de la ligne.

    grep ^mickael /etc/group

     

    Utiliser la commande GREP

      ( cliquer sur l'image pour l'agrandir ) 

     

    Je recherche les lignes contenant les chiffres compris entre 7 et 9 dans /etc/passwd.

    grep [7-9] /etc/passwd

     

    Utiliser la commande GREP

      ( cliquer sur l'image pour l'agrandir ) 

     

    Je recherche les lignes contenant les lettres x, y ou z minuscules dans /etc/passwd.

    grep [x-z] /etc/passwd

     

    Utiliser la commande GREP

      ( cliquer sur l'image pour l'agrandir ) 

     

    Je recherche les lignes contenant les lettres A, B ou C majuscules dans /etc/passwd.

    grep [A-C] /etc/passwd

     

    Utiliser la commande GREP

     ( cliquer sur l'image pour l'agrandir ) 

     

    Je recherche les lignes commençant par les lettres a, b ou c minuscules dans /etc/passwd.

    grep ^[a-c] /etc/passwd

     

    Utiliser la commande GREP

       ( cliquer sur l'image pour l'agrandir ) 

     

    Enfin, je recherche les lignes commençant par les lettres a ou b minuscules et se finissant par les lettres e ou n minuscules.

    grep ^[a-b].*[en]$ /etc/passwd

     

    Utiliser la commande GREP

      ( cliquer sur l'image pour l'agrandir ) 

     

    Vous pouvez également utiliser grep avec d'autres commandes telles que awk ou wc.

    Ici, je vais extraire l'UID de l'utilisateur mickael.

    grep mickael /etc/passwd | awk -F ':' '{print $3}'

     

    Utiliser la commande GREP

       ( cliquer sur l'image pour l'agrandir ) 

     

    Et ici, je recherche le nombre de coeurs de mon CPU.

    grep "cpu cores" /proc/cpuinfo | wc -l

     

    Utiliser la commande GREP

     ( cliquer sur l'image pour l'agrandir ) 

     

    Conclusion :

    Comme vous avez pu le constater, la commande grep offre beaucoup de possibilités...

    Elle est devenue pour moi une des commandes incontournables lorsque j'écris des scripts...

    « Script pour Message of the Day Tester la disponibilité de vos hôtes avec Fping »

    Tags Tags : , , ,
  • Commentaires

    Aucun commentaire pour le moment

    Suivre le flux RSS des commentaires


    Ajouter un commentaire

    Nom / Pseudo :

    E-mail (facultatif) :

    Site Web (facultatif) :

    Commentaire :