Comment trouver une chaîne ou un mot spécifique dans les fichiers et les répertoires
- 1079
- 220
- Emilie Colin
Voulez-vous trouver tous les fichiers contenant un mot ou une chaîne de texte en particulier sur votre système Linux entier ou un répertoire donné. Cet article vous guidera sur la façon de procéder, vous apprendrez à creuser récursivement via des répertoires pour trouver et répertorier tous les fichiers qui contiennent une chaîne de texte donnée.
Un moyen simple de déterminer cela consiste à utiliser l'outil de recherche de motifs GREP, est un utilitaire de ligne de commande puissant, efficace, fiable et le plus populaire pour trouver des modèles et des mots à partir de fichiers ou de répertoires sur des systèmes de type Unix.
Lire aussi: 11 Commandes avancées Linux «Grep» sur les classes de caractères et les expressions de support
La commande ci-dessous répertorie tous les fichiers contenant une ligne avec le texte "check_root», En recherchant de manière récursive et agressive ~ / bac
annuaire.
$ grep -rw ~ / bin / -e 'check_root'Trouvez un mot dans Directory
Où le -R
L'option raconte grep Pour lire tous les fichiers dans chaque répertoire, récursivement, en suivant les liens symboliques uniquement s'ils sont sur la ligne de commande et l'option -w lui demande de sélectionner uniquement les lignes contenant des correspondances qui forment des mots entiers, et -e
est utilisé pour spécifier la chaîne (modèle) à rechercher.
Vous devez utiliser la commande sudo lors de la recherche de certains répertoires ou fichiers qui nécessitent des autorisations racinaires (sauf si vous gérez votre système avec le compte racine).
$ sudo grep -rw / -e 'check_root'
Pour ignorer les distinctions de cas utilisez le -je
Option comme indiqué:
$ grep -riw ~ / bin / -e 'check_root'
Si vous souhaitez connaître la ligne exacte où existe la chaîne de texte, incluez le -n
option.
$ grep -Rrinw ~ / bin / -e 'check_root'Trouver une chaîne avec le numéro de ligne
En supposant qu'il existe plusieurs types de fichiers dans un répertoire dans lequel vous souhaitez rechercher, vous pouvez également spécifier le type de fichiers à rechercher par exemple, par leur extension à l'aide de la --inclure
option.
Cet exemple demande que Grep ne regarde que tous .shot
des dossiers.
$ grep -rnw --include = \ *.sh ~ / bin / -e 'check_root'
De plus, il est possible de rechercher plus d'un modèle, en utilisant la commande suivante.
$ grep -rinw ~ / bin / -e 'check_root' -e 'netstat'Trouver plusieurs mots dans des fichiers
C'est ça! Si vous connaissez une autre astuce de ligne de commande pour trouver une chaîne ou un mot dans les fichiers, partagez avec nous ou posez des questions concernant ce sujet, utilisez le formulaire de commentaire ci-dessous.
- « Comment enregistrer et rejouer les sessions de terminal Linux à l'aide de commandes «script» et «scriptreplay»
- Comment exécuter plusieurs commandes sur plusieurs serveurs Linux »