===== 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 "lib**e**rterté" 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 [[https://www.lucaswillems.com/fr/articles/25/tutoriel-pour-maitriser-les-expressions-regulieres|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 [[http://www.danielnaber.de/loook/|développeur initial]](en) ou la version 0.8.6 sur le site du [[http://mechtilde.de/Loook/|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** {{counter}} visteurs.