Outils pour utilisateurs

Outils du site


wiki:linux_trouver_fichier

Retrouver un fichier contenant un texte particulier

Si comme moi parfois vous ne savez plus dans quel fichier il y avait un sujet particulier, voici comment faire avec quelques commandes Linux:

Tout dépend du type de fichier dans lequel vous rechercher l'information…

1. Fichiers de type texte non compressé

Il ne s'agit pas de texte issu d'un traitement de texte, pour ça voir 4°

Utilisation de la commande egrep :

Cette commande recherche un ou des motifs dans les fichiers passés en paramètres. La syntaxe de base est :

  egrep   [options]    motif   fichiers

exemple:

  egrep  -a1   liber     CITATIONS/*.txt  

⇒ rechercher le motif 'liber' dans tous les fichiers d'extension .txt du dossier CITATION

  
  Citations_liberté.txt-
  Citations_liberté.txt:La liberté signifie responsabilité. C'est pourquoi la plupart des hommes la redoutent.
  Citations_liberté.txt-     George Bernard Shaw
  Citations_politique.txt-
  Citations_politique.txt:Tandis que l'État existe, pas de liberté ; quand régnera la liberté, il n'y aura plus d'État.
  Citations_politique.txt-      Lénine, Source : L'État et la Révolution

Ici l'option -a1 permet de récupérer, en plus des lignes qui correspondent au motif cherché, une ligne avant et une ligne après.

egrep utilise les expression régulières, c'est à dire qu'on peut lui donner des motifs assez complexes à rechercher en combinant des caractères spéciaux:

  • * : joker pour n caractères
  • . : joker pour un caractère
  • ^ : début de mot
  • $ : fin de mot
  • | : alternative (ou)

et d'autres… (voir url du tutoriel plus bas)

Dans l'exemple ci-dessus, pour récupérer aussi les citations parlant de “libération”, il faut utiliser le caractère joker “.” :

  egrep  -a1   'lib.r'    CITATIONS/*.txt
  

⇒ permet la correspondance avec “liberterté” ou “libération”,

Pour récupérer des motifs très différents les uns des autres il faut passer par le caractère “ou” |:

  egrep   'femme|homme|mariage'     CITATIONS/*.txt

Quand des caractères spéciaux sont inclus dans le motif, il faut que la chaine soit encadrée de ' '

Parmi les options les plus utiles:

  • -i : (ignore case) ne tient pas compte des differences minuscules/majuscules
  • -R : récursif, permet de chercher un motifs en descendant dans les dossiers de plus bas niveau: grep -R motif dossier
  • -l : (list) ne fait qu'afficher le nom des fichiers qui contiennent le motif cherché
  • -c : (count): ne fait que compter le nombre d'occurrences dans chaque fichier du motif cherché
  • -n : affiche le numéro de ligne ou le motif a été trouvé
  • -w : (word) le motif cherché doit correspondre à un mot complet (et non une partie de mot comme le fonctionnement de base)

NB: si on cherche une chaine sans aucun caractère spécial on peut utiliser grep (sans e initial)

voir man grep et man egrep pour l'étendue des possibilités…

Ici un tutoriel expressions régulières

2. Fichiers texte compressés

Utilisation de zegrep ou zgrep. Syntaxe de base:

 zegrep   [options]   motif   fichiers
 

Le mêmes options que pour les commandes egrep/grep sont disponibles.

3. Fichiers pdf

Il faut installer la commande pdfgrep. Voir vos distributions respectives pour trouver et installer le paquet…

  • pour ubuntu, debian: sudo apt-get install pdfgrep
  • pour mageia : urpmi pdfgrep

La syntaxe de base est semblable à celle de grep:

  pdfgrep   [options]    motif   fichiers

man pdfgrep pour avoir les diverses options disponibles.

4. Fichiers LibreOffice, OpenOffice et MS-Office (Word, Excel, Powerpoint en version > 2007)

Il faut installer loook, une petite application graphique python. Voir vos distributions respectives pour trouver et installer le paquet.

  • pour ubuntu, debian: sudo apt-get install loook

Si les dépôts de votre distribution ne le proposent pas, vous pouvez télécharger la version 0.6.8 sur le site du développeur initial(en) ou la version 0.8.6 sur le site du repreneur (de)

Le site initial dit: It works under Linux, Windows and Macintosh. mais sans préciser de version…

  • Pour les distributions de la famille Debian, téléchargez loook_0.8.6-1_all.deb, puis installez le avec sudo dpkg -i loook_0.8.6-1_all.deb
  • Pour les distributions de la famille Redhat, il faut d'abord convertir en paquet rpm avec la commande alien (à installer aussi depuis les dépôts):
    • alien loook_0.8.6-1_all.deb -r qui se termine par le message: loook-0.8.6-2.noarch.rpm generated
    • installer loook-0.8.6-2.noarch.rpm (par exemple sur mageia avec urpmi loook-0.8.6-2.noarch.rpm)

Utilisation :

  • lancez l'application depuis le menu du bureau
  • dans chemin de recherche sélectionnez un dossier ou se trouvent des documents LibreOffice,OpenOffice, Word/Excel
  • tapez un ou plusieurs mots à rechercher (avec des blancs entre eux)
  • si tous les mots doivent se trouver dans le document utilisez le mode ET, si un seul suffit utilisez le mode OU

32 visteurs.

wiki/linux_trouver_fichier.txt · Dernière modification: 2021/05/12 16:17 de fernando