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

l’Almanet doLys Gnu/Linux – Open Source – Entreprises Forums L’almanet doLys Open Source Retrouver un fichier par son contenu (.txt .md .doc .odt .docx) sous Linux

Mots-clés : , , , , , ,

Affichage de 1 message (sur 1 au total)
  • Auteur
    Articles
  • #8113
    nam1962nam1962
    Keymaster

      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

    Affichage de 1 message (sur 1 au total)
    • Vous devez être connecté pour répondre à ce sujet.