Combinaison de grep avec des pipelines et des séquences de commandes
Dans cette étape, nous allons explorer comment utiliser grep
en combinaison avec des pipelines et des séquences de commandes pour un traitement de texte plus avancé.
Commençons par rechercher toutes les lignes contenant "PATH" dans votre fichier .zshrc
et en compter le nombre :
grep "PATH" ~/.zshrc | wc -l
Ce pipeline utilise d'abord grep
pour trouver les lignes contenant "PATH", puis envoie la sortie à wc -l
pour compter les lignes.
Maintenant, utilisons une séquence de commandes pour rechercher "PATH" et ensuite "HOME" si "PATH" est trouvé :
grep "PATH" ~/.zshrc && grep "HOME" ~/.zshrc
Cela affichera les lignes contenant "HOME" seulement si des lignes contenant "PATH" ont été trouvées.
Essayons un exemple plus complexe. Nous allons rechercher les lignes se terminant par "bin" dans /etc/passwd
, les trier et afficher les 5 premières :
grep "bin" /etc/passwd | sort | head -n 5
Ce pipeline effectue trois opérations :
- Trouve les lignes contenant "bin"
- Trie ces lignes par ordre alphabétique
- Affiche seulement les 5 premières lignes du résultat
Enfin, combinons tout ce que nous avons appris. Nous allons rechercher les lignes contenant "sh" dans /etc/passwd
, en compter le nombre, et en fonction du nombre, nous afficherons soit les lignes, soit un message :
grep "sh" /etc/passwd | wc -l | {
read count
[ $count -gt 5 ] && grep "sh" /etc/passwd || echo "Found $count lines, not enough to display."
}
Cette commande complexe effectue les opérations suivantes :
- Recherche les lignes contenant "sh"
- Compte ces lignes
- Si le nombre est supérieur à 5, elle affiche les lignes
- Si le nombre est inférieur ou égal à 5, elle affiche un message avec le nombre
Essayez d'exécuter ces commandes et expérimentez avec vos propres combinaisons!