Comment trouver tous les fichiers contenant du texte spécifique dans Linux
- 3079
- 419
- Zoe Dupuis
Ce tutoriel vous apprendra comment rechercher récursivement des fichiers contenant une chaîne spécifique sur Linux en utilisant la ligne de commande. Ce tutoriel utilise la commande «grep» pour rechercher des chaînes dans des fichiers. Alternativement, vous pouvez utiliser la commande find pour rechercher des fichiers avec du contenu spécifique.
Une syntaxe de base pour rechercher du texte avec la commande grep:
grep -rl "search-string" / path / to / serch / dir1 | grep -rl "search-string" / path / to / serch / dir |
La commande grep propose d'autres options utiles pour trouver du texte spécifique dans les systèmes de fichiers.
-r, - réécursif
: Rechercher les fichiers récursivement-R, - déréfection-restreinte
: Rechercher les fichiers récursivement et suivre les liens symboliques--inclure = file_pattern
: Recherchez uniquement les fichiers qui correspondent à File_pattern--exclure = file_pattern
: sauter les fichiers et les répertoires correspondant à File_pattern--Exclusion de fichier =
: sauter les fichiers correspondant à n'importe quel modèle de fichier à partir du fichier--exclure-diir = motif
: Les répertoires qui correspondent.-L, --Files-Without-Match
: Imprimer les noms de fichiers ne contenant aucune correspondance-L, - Files-with-Matchs
: Imprimer la chaîne contenant des noms de fichiers uniquement-I, --Ignore Case
: ignorer le cas de la chaîne de recherche-e, --regexp = motif
: Utilisez un modèle pour rechercher ou spécifier plusieurs chaînes de recherche-w, --mot-regexp
: forcer à faire correspondre les mots entiers
Il existe plusieurs façons d'utiliser la commande grep pour rechercher le texte. Discutons de quelques exemples de recherche d'un texte / chaîne dans le système de fichiers.
- Recherchez une seule chaîne dans tous les fichiers
La commande Exemple ci-dessous recherchera la chaîne «Erreur» dans tous les fichiers dans le répertoire / var / journal et ses sous-répertoires.
Recherchez un texte spécifique dans tous les fichiers en utilisant la ligne de commandegrep -rlw "error" / var / log
- Recherchez plusieurs chaînes dans tous les fichiers
Le
-e
Le commutateur peut également être utilisé pour trouver plusieurs chaînes. Ceci est comparable à lafaire un coup de pouce
programme. L'exemple ci-dessous recherchera "Erreur" et "Avertissement" dans tous les fichiers du / var / log répertoire et ses sous-répertoires.
Recherchez plusieurs chaînes dans tous les fichiers avec la ligne de commandegrep -rlw -e "error" -e "avertissement" / var / log
- Rechercher la chaîne dans des fichiers spécifiques
Vous pouvez rechercher des chaînes dans des fichiers qui correspondent aux critères de nom de fichier. La commande suivante recherche "Erreur" dans les fichiers avec le .enregistrer extension dans le / var / log répertoire et ses sous-répertoires.
grep -rlw --include = "*.log "-e" error "/ var / log
- Exclure certains fichiers de la recherche
Vous pouvez utiliser le
--exclure
option dans Rechercher pour exclure certains fichiers qui correspondent à certains critères de nom de fichier. Par exemple, vous pouvez exclure des fichiers avec le .SMS extension.grep -rlw --exclude = "*.txt "-e" tecadmin "/ var / log
- Exclure certains répertoires de la recherche
Vous pouvez également sauter la recherche de certains répertoires. Par exemple, ne recherchez pas les fichiers de chaîne dans aucun dossier avec apache2 en son nom.
grep -rlw --exclude-dir = "* apache2 *" -e "tecadmin" / var / log
Conclusion
Vous avez appris à rechercher un texte spécifique dans des fichiers du système de fichiers Linux dans ce tutoriel.