Quand on recherche un document et qu’on se souvient juste d’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 <<EOT >> ~/.bashrc
function grepodx(){
find . -type f \( -name "*.od*" -or -name "*.docx" \)
unzip -ca "\$i" 2>/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 <<EOT >> ~/.bashrc
function greptout(){
find . -type f | grep -Ril --include \*.txt --include \*.md --include \*.doc "$*" &&
find . -type f \( -name "*.od*" -or -name "*.docx" \)
unzip -ca "\$i" 2>/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’argument, présentation plus jolie)
Un jeune site que j'aime bien, la ferrari du T-shirt ...bio en plus : GoudronBlanc