Comment trouver tous les fichiers contenant du texte spécifique dans Linux

Comment trouver tous les fichiers contenant du texte spécifique dans Linux

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 / dir
1grep -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.

  1. Recherchez une seule chaîne dans tous les fichiers
  2. 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.

    grep -rlw "error" / var / log  
    Recherchez un texte spécifique dans tous les fichiers en utilisant la ligne de commande

  3. Recherchez plusieurs chaînes dans tous les fichiers
  4. Le -e Le commutateur peut également être utilisé pour trouver plusieurs chaînes. Ceci est comparable à la faire 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.

    grep -rlw -e "error" -e "avertissement" / var / log  
    Recherchez plusieurs chaînes dans tous les fichiers avec la ligne de commande

  5. Rechercher la chaîne dans des fichiers spécifiques
  6. 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  

  7. Exclure certains fichiers de la recherche
  8. 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  

  9. Exclure certains répertoires de la recherche
  10. 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.