GNU/Linux >> Tutoriels Linux >  >> Linux

Comment trouver des fichiers contenant une chaîne de texte spécifique sous Linux

Presque tous les gestionnaires de fichiers pour Linux comme Nemo et Thunar fournissent par défaut une option pour rechercher des fichiers. Mais si vous souhaitez rechercher une chaîne dans le contenu d'un fichier à l'aide du gestionnaire de fichiers, la majorité d'entre eux ne vous permettent pas de le faire.

Dans cet article, je vais discuter des différentes façons que vous pouvez utiliser sur n'importe quelle distribution Linux pour trouver tous les fichiers contenant des chaînes de texte ou des mots spécifiques en fouillant de manière récursive dans tous les sous-répertoires.

Sur cette page

  • Rechercher un texte spécifique sous Linux à l'aide de l'outil d'interface graphique Catfish
  • Rechercher un texte spécifique sous Linux à l'aide de la commande Grep
  • Rechercher un texte spécifique sous Linux à l'aide de MC (Midnight Commander)

Rechercher un texte spécifique sous Linux à l'aide de l'outil graphique Catfish

Je vais commencer par le moyen le plus simple qui peut fonctionner pour tous, y compris les débutants, pour faire progresser les utilisateurs de Linux. Poisson-chat est un outil de recherche de fichiers simple et léger basé sur une interface graphique pour les postes de travail Linux. En plus de rechercher des fichiers sur votre système, vous pouvez également l'utiliser pour rechercher tous les fichiers contenant un mot particulier.

[ Vous pourriez également aimer :Comment trouver des fichiers basés sur l'horodatage sous Linux ]

Installer l'outil de recherche Catfish sur Linux

Le poisson-chat Le package est déjà disponible sur les référentiels principaux Debian et Ubuntu. Par conséquent, si vous utilisez des distributions basées sur Debian ou Ubuntu, vous pouvez simplement l'installer en exécutant la commande :

$ sudo apt install catfish  [On Debian/Ubuntu & Mint]

Sur d'autres distributions Linux, vous pouvez l'installer à partir des référentiels par défaut à l'aide de votre gestionnaire de packages.

$ sudo yum install catfish  [On CentOS/RHEL 7]
$ sudo dnf install catfish  [On CentOS/RHEL 8 & Fedora]
$ sudo pacman -S catfish    [On Arch Linux]
$ sudo pkg_add -v catfish   [On FreeBSD]

Si le package n'est pas disponible, vous pouvez télécharger le dernier fichier de version, extraire le fichier tar.bz2 téléchargé et exécuter la commande suivante :

$ sudo python3 setup.py install

Rechercher le contenu d'un fichier à l'aide de Catfish

Une fois installé, il vous suffit d'activer "Rechercher le contenu du fichier ”, sélectionnez les répertoires dans l'option déroulante en haut à gauche et saisissez le texte que vous souhaitez rechercher. Il répertorie tous les fichiers contenant du texte, ainsi que la taille et l'emplacement du fichier.

Vous pouvez également utiliser le type de fichier et le filtre de date de modification dans le panneau de gauche pour réduire la portée de la recherche. Vous pouvez même ajouter un chemin de répertoire où vous ne souhaitez pas effectuer de recherche.

Rechercher un texte spécifique sous Linux à l'aide de la commande Grep

À côté de l'GUI façon, grep est l'un des outils de ligne de commande populaires qui peuvent être utilisés pour rechercher dans le contenu du fichier. Étant donné que presque tous les systèmes d'exploitation de type Unix fournissent grep utilitaire par défaut, vous n'avez pas besoin de l'installer.

Rechercher un texte particulier dans des fichiers

Maintenant, pour rechercher et trouver tous les fichiers d'une chaîne de texte donnée dans un terminal Linux, vous pouvez exécuter la commande suivante. Ici, le '-r' ou '-R' flag recherche de manière récursive dans tous les sous-répertoires du répertoire spécifié.

$ grep -r “linuxshelltips” /home/sarvottam/

Rechercher les noms de fichiers contenant une chaîne donnée

Si vous souhaitez imprimer uniquement les noms de fichiers et masquer le texte de la sortie, vous pouvez utiliser le '-l' drapeau.

$ grep -rl “linuxshelltips” /home/sarvottam/

Imprimer les noms de fichiers et les numéros de ligne contenant une chaîne donnée

De plus, vous pouvez également modifier la sortie en utilisant les options suivantes disponibles pour grep :

  • 'i' pour insensible à la casse.
  • 'n' pour imprimer le numéro de ligne.
  • 'w' pour faire correspondre le mot entier.
$ sudo grep -rnwi “linuxshelltips” /home/sarvottam/

Il convient également de mentionner que si vous effectuez une recherche dans des répertoires nécessitant des autorisations root, vous devez utiliser la commande sudo.

Rechercher un texte spécifique dans des types de fichiers spécifiques

Pour réduire davantage la portée de la recherche, vous pouvez également mentionner spécifiquement le type de fichier et de répertoires à rechercher uniquement lors de la recherche. “--include” , “--exclude” et “--exclude-dir” sont les options disponibles pour ajouter un type de fichier et un filtre de répertoire.

$ grep --include=\*.txt --exclude=\*.{java,js} --exclude-dir=\bin -rnwi "linuxshelltips" /home/sarvottam/

Rechercher un texte spécifique sous Linux à l'aide de MC (Midnight Commander)

Si vous vivez dans un terminal et que vous souhaitez toujours rechercher du texte à l'aide de l'interface graphique, vous pouvez également essayer l'outil de gestion de fichiers basé sur l'interface utilisateur du terminal (TUI), mc (commandant de minuit ) - est un gestionnaire de fichiers visuel utilisé pour rechercher des fichiers.

Installer Midnight Commander sur Linux

Le commandant de minuit est disponible pour être installé à partir des référentiels par défaut dans la plupart des distributions Linux.

$ sudo apt install mc  [On Debian/Ubuntu & Mint]
$ sudo yum install mc  [On CentOS/RHEL 7]
$ sudo dnf install mc  [On CentOS/RHEL 8 & Fedora]
$ sudo pacman -S mc    [On Arch Linux]
$ sudo pkg_add -v mc   [On FreeBSD]

Rechercher le contenu d'un fichier à l'aide de Midnigh Commander

À l'intérieur du terminal, mc fournit une représentation visuelle du système de fichiers dans laquelle vous pouvez naviguer au clavier ou à la souris. Pour rechercher le contenu d'un fichier, vous pouvez ouvrir une boîte de dialogue de recherche en utilisant ALT+SHIFT+? et saisissez le texte dans le champ “Content:” rubrique.

Comme vous pouvez le voir dans l'image ci-dessus, vous pouvez également utiliser des filtres comme ignorer la casse, les mots entiers et les expressions régulières en les cochant et en les décochant simplement.

Conclusion

Toutes les applications mentionnées ci-dessus sont conviviales pour les débutants, gratuites et open source pour ajouter vos propres améliorations. Alternativement, vous pouvez également essayer d'autres outils gratuits comme Ack, The Silver Searcher, Ripgrep et la commande find.


Linux
  1. Comment trouver un fichier sous Linux

  2. Comment rechercher dans des fichiers spécifiques correspondant à un modèle ?

  3. Comment rechercher un texte spécifique à l'aide de GREP sous Linux

  4. Comment distinguer le binaire des fichiers texte sous Linux

  5. Comment trouver des fichiers au format dos dans un système de fichiers Linux

Comment trouver une chaîne dans un fichier sous Linux

Comment renommer un ou plusieurs fichiers sous Linux

Comment rechercher et supprimer des fichiers contenant un texte spécifique dans leurs noms sous Linux

Comment trouver des fichiers basés sur l'horodatage sous Linux

Comment trouver des fichiers modifiés au cours des dernières 24 heures sous Linux

Comment compresser un fichier sous Linux