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 : , , , , , ,

Ce sujet a 0 réponse, 1 participant et a été mis à jour par nam1962 nam1962, il y a 9 mois.

Affichage de 1 message (sur 1 au total)
  • Auteur
    Messages
  • #8113
    nam1962
    nam1962
    Admin bbPress

    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 : https://goudronblanc.com
    C'est notre mécène ! 🙂

Affichage de 1 message (sur 1 au total)

Vous devez être connecté pour répondre à ce sujet.