La fameuse commande Grep

commande grep

La commande Grep sert à extraire des lignes d’un fichier ou du retour d’une commande.

Fonctionnement de la commande Grep :

  • grep « chaine de caractères » nom_du_fichier

Ainsi toutes les lignes contenant « chaine de caractères » seront affiché

Cette fonctionnalité est un des outils les plus utilisés de l’administrateur système pour recherché une ligne ou des lignes précises donc n’hésite pas à l’utiliser dès que possible pour bien prendre en main cette commande.

Nous allons maintenant faire le tour des options de la commande grep qui peuvent être très utiles.

Les options de Grep linux:

  • l’option grep -i pour ignorer la case
  • -v permet d’ignorer toutes les lignes contenants le motif
  • -m NUM permet d’afficher le nombre de ligne souhaité, exemple : Je veux afficher les 2 premières lignes contenant « root » dans le fichier /etc/passwd :
babidi@Babidi-ubuntu:~/mes_scripts$ grep -m 3 root /etc/passwd
root:x:0:0:root:/root:/bin/bash
nm-openvpn:x:130:141:NetworkManager OpenVPN,,,:/var/lib/openvpn/chroot:/usr/sbin/nologin
babidi@Babidi-ubuntu:~/mes_scripts$ 
  • -n permet d’afficher le numéro de ligne
  • -c affiche seulement le nombre de ligne qui contient le motif (identique à wc -l)
  • -l permet d’afficher uniquement le nom des fichiers contenant le motif
  • -R permet d’utiliser la récursivité et ainsi faire une recherche du motif dans plusieurs fichiers ou dossiers
  • -A NUM affiche la ligne qui contient le motif + les NUM lignes suivant
  • -B NUM affiche la ligne qui contient le motif + les NUM lignes précédente
  • -E pour faire une recherche en utilisant une regex

Tu sais maintenant utiliser la commande Grep et certaines de ses options.

Je n’ai indiqué ici seulement les options que j’utilise le plus.

Les variantes grep

rgrep

rgrep == grep -R

Recherche une chaîne de caractère dans tous les fichiers de tous le dossier de manière récurrente.

egrep

egrep == grep -E

Utilisation d’une regex

fgrep

fgrep == grep -F

zgrep

Un grep pour les fichiers compressé :

zgrep error /var/log/dmesg.*.gz

dmesg.1.gz:[   39.601530] kernel: EXT4-fs (sda4): re-mounted. Opts: errors=remount-ro
dmesg.1.gz:[   40.911296] kernel: ACPI Error: Aborting method \_SB.PCI0.PEG0.PEGP.DD02._BCL due to previous error (AE_NOT_FOUND) (20190816/psparse-529)
dmesg.2.gz:[   39.327921] kernel: EXT4-fs (sda4): re-mounted. Opts: errors=remount-ro
dmesg.2.gz:[   40.604417] kernel: ACPI Error: Aborting method \_SB.PCI0.PEG0.PEGP.DD02._BCL due to previous error (AE_NOT_FOUND) (20190816/psparse-529)
dmesg.3.gz:[   39.281754] kernel: EXT4-fs (sda4): re-mounted. Opts: errors=remount-ro

Très utile pour fouiner dans des fichiers de logs compressé par exemple.

N’hésites pas à dire en commentaire quels options tu utilises le plus et à quoi elles servent si elles ne sont pas dans cette liste.

Tu trouveras sur ce LIEN le manuel de grep.

Si linux t’intéresse n’hésite pas à jeter un œil à nos autres articles ICI.

Besoin d’aide

Comme d’habitude si tu as la moindre question contactes nous.

Laisser un commentaire