Étiquette : grep

28 janvier 2020 /
Liste des processus entrain d'ecrire sur le disque dur
lsof | grep -e "[[:digit:]]\+w"
23 février 2018 /

Recherche simple:

grep ext4 /etc/fstab

awk /ext4/ /etc/fstab

Recherche en ignorant la casse:

grep -i ext4 /etc/fstab

awk /ext4/ IGNORECASE=1 /etc/fstab

Compter le nombre d’occurrence:

grep -c ext4 /etc/fstab

awk '/ext4/{x++;}END{print x}' /etc/fstab

Liste des fichiers contenant le mot recherché:

grep -l ext4 *

awk '/ext4/{print FILENAME;nextfile}' *

Afficher le numéro des lignes contenant le mot recherché:

grep -n ext4 /etc/fstab

awk '/ext4/{print NR":"$0}' /etc/fstab

Recherche de plusieurs occurrences:

grep -E 'ext4|swap' /etc/fstab

awk '/ext4|swap/' /etc/fstab

Afficher les lignes qui ne contiennent pas le mot recherché:

grep -v ext4 /etc/fstab

awk '!/ext4/' /etc/fstab

Pour afficher les lignes contenant le mot rechercher ainsi que la ligne suivante:

grep -A1 ext4 /etc/fstab

awk '/ext4/{print;getline;print}' /etc/fstab

Pour afficher les lignes contenant le mot rechercher ainsi que la ligne précédente:

grep -B1 ext4 /etc/fstab

awk '/ext4/{print x;print;next}{x=$0;}' /etc/fstab

Pour afficher les lignes contenant le mot rechercher ainsi que la ligne précédente et la ligne suivante:

grep -C1 ext4 /etc/fstab

awk '/ext4/{print x;print;getline;print;next}{x=$0;}' /etc/fstab

22 février 2018 /

Pour afficher le contenu d’un fichier sans ses lignes de commentaires:

grep "^[^#|^$|^;]" smb.conf

3 janvier 2017 /

Je reprend l’exemple d’un fichier texte contenant une multitude d’identifiants.
Des identifiants qui commencent par 4 chiffres puis 2 lettres (exemple: 1502KQ) respecte le standard voulu, les autres non.

Nous souhaitons donc isoler les identifiants ne correspondant pas à ce standard.

Pour cela, crée un fichier, test.txt par exemple, et on y inscrit cette liste d’identifiants:

7737OM
8053HR
8184MH
8579MX
9254NF
1034AP
ADMIN01
ADMIN26
BIZOT
4569DF
BOURGAINET
CHACONNI
4126NR
4685ET
D?ALES
5016NW
DESOUSASSE06
FITGERERT
FRANCINETTE

Pour afficher les occurrences qui correspondent à notre expression régulière, [0-9]{4}[a-zA-Z]{2} (pour 4 chiffres et 2 lettres en minuscule ou majuscule):

egrep "[0-9]{4}[a-zA-Z]{2}" test.txt

7737OM
8053HR
8184MH
8579MX
9254NF
1034AP
4569DF
4126NR
4685ET
5016NW

Pour afficher au contraire les occurrences qui correspondent pas à notre expression régulière, on rajoute l’option « -v »:

egrep -v "[0-9]{4}[a-zA-Z]{2}" test.txt

ADMIN01
ADMIN26
BIZOT
BOURGAINET
CHACONNI
D?ALES
DESOUSASSE06
FITGERERT
FRANCINETTE

Note: On peut également utiliser grep avec l’option « -E » qui forcer grep à se comporter comme egrep:

grep -E "[0-9]{4}[a-zA-Z]{2}" test.txt

Autres exemples:

Recherche les mots dont b n’est pas suivi de o:

egrep "b[^o]" test.txt

Recherche toute ligne qui commence par « De: », « Sujet: » ou « Date: »:

egrep "^(De|Sujet|Date):" test.txt

Recherche et affiche chaque ligne du fichier test.txt qui contient l’occurence bonjour ou Bonjour, les numéros de ligne sont également affichés (option -n):

egrep -n "[bB]onjour" test.txt

Liste toute les lignes du fichier test.txt commençant avec le caractère $:

egrep "^\\$" test.txt

Liste tous les fichiers et répertoires dans le répertoire courant qui ne se terminent pas avec .txt:

ls -l | egrep "[^.txt]$"

Liste tous les fichiers et répertoires dans le répertoire courant qui se terminent avec .txt:

ls -l | egrep "[.txt]$"

Affiche uniquement les lignes dont le numéro de téléphone commence par un 1:

egrep "^1" test.txt

Recherche les lignes avec un 2 à la seconde position et n’importe quel caractère en première position:

egrep "^.2" test.txt

Recherche les lignes dont le premier caractère est différent de 1:

egrep "^[^1]" test.txt

8 octobre 2015 /

Un petit script pour tuer un processus qui dure trop longtemps (ici php):

#!/bin/bash
/bin/ps -eo pid,etime,command|/bin/grep /usr/local/zend/bin/php|/bin/egrep '([0-9]+)([ ]+)([2-9]{1}[0-9]{1}:[0-9]{2})'|/bin/awk '{print $1}'|xargs -I{} kill {}