# Retrouver un fichier par son contenu (.txt .md .doc .odt .docx) sous Linux

- Link: https://dolys.fr/forums/topic/retrouver-fichier-contenu-txt-md-doc-odt-linux/
- Published: 2018-02-17T11:08:36+02:00
- Author: nam1962

Quand on recherche un document et qu&rsquo;on se souvient juste d&rsquo;une partie de son contenu, il est intéressant de le localiser rapidement. Pour cela quelques lignes de commande peuvent être utiles Si le texte est dans un fichier .txt, .md ou .doc find . -type f | grep -Ril "le texte dont je me souviens" ~/le_chemin_de/mon_dossier Si vous vous souvenez du type de fichiers (.txt par exemple) find . -type f | grep -Ril --include \*.txt "le texte dont je me souviens" ~/le_chemin_de/mon_dossier Si votre texte est dans un fichier .odt .ods etc (format ODF) ou dans un fichier .docx ce sera plus compliqué (les textes ne sont pas « en clair »),  il nous faudra donc créer une nouvelle fonction pour le terminal en amendant le fichier .bashrc ; pour cela copiez/collez tout ce pavé dans votre terminal : cat &lt;&lt;EOT &gt;&gt; ~/.bashrc function grepodx(){ find . -type f \( -name "*.od*" -or -name "*.docx" \) unzip -ca "\$i" 2&gt;/dev/null | grep -iq "\$*" } EOT On relance alors .bashrc : source ~/.bashrc Pour faire une recherche dans les .docx : grepodx le texte dont je me souviens Si vous cherchez sur tout votre /home ça peut être long, pensez quand même à faire la recherche dans un répertoire plus précis (si vous vous en souvenez). On peut regrouper toutes les recherches en une seule fonction : cat &lt;&lt;EOT &gt;&gt; ~/.bashrc function greptout(){ find . -type f | grep -Ril --include \*.txt --include \*.md --include \*.doc "$*" &amp;&amp; find . -type f \( -name "*.od*" -or -name "*.docx" \) unzip -ca "\$i" 2&gt;/dev/null | grep -iq "\$*" } EOT Si vous êtes suffisamment habiles en bash, dîtes-moi si vous avez une idée pour améliorer ! (Alerte si pas d&rsquo;argument, présentation plus jolie)
