Bonjour Papy_Octet
il faudrait d’abord installer le paquetage odt2txt
puis tu pourras créer et lancer le script suivant
qui va afficher la liste des fichiers qui contiennent
la chaîne de caractères recherchée
#!/bin/bash
# Description :
# Recherche une chaîne de caractères dans tous les fichiers "*.odt " (Writer de Libre Office)
# contenus dans un répertoire et tous ses sous-répertoires.
# Syntaxe :
# nomDuScript.sh "nom du répertoire" "chaîne à rechercher"
while read; do
odt2txt "$REPLY" | grep -l "$2"
done <<< $(find "$1" -type f -name "*.odt" 2>/dev/null)
Extrait de ce fil de discussion
Ou alors,
sans prendre en compte les sous-répertoires du répertoire de recherche :
#!/bin/bash
# Description :
# Recherche une chaîne de caractères dans tous les fichiers "*.odt " (Writer de Libre Office)
# contenus dans un répertoire mais PAS dans ses sous-répertoires.
# Syntaxe :
# nomDuScript.sh "nom du répertoire" "chaîne à rechercher"
while read; do
odt2txt "$REPLY" | grep -l "$2"
done <<< $(find "$1" -maxdepth 1 -type f -name "*.odt" 2>/dev/null)
EDIT :
Il me semblait bien aussi que j’oubliais quelque chose,
c’était l’option -l
de la commande grep
et l’option -type f de la commande find
Alors, toujours avec odt2txt
mais en une seule ligne de commandes
lancée depuis le répertoire contenant les fichiers .odt
odt2txt *.odt | grep -l "Chaîne à rechercher"