Hello moko138
Heureux de te voir de retour 🙂
Voici ce que donne ta commande dans sa dernière version.
J'ai mis Budapest à la fois pour la recherche sur les fichiers .odt et sur les .ods car ce mot -je le sais- figure sur mon home dans ces 2 types de fichiers :
cd / ; find . -iname "*.ods" -exec sh -c 'odt2txt "{}" | grep -Eis "budapest" && echo "{}"' \; 2> /dev/null ; echo -e " = = = = =\n Et voici les résultats en .ODT :\n"; cd / ; find . -iname "*.odt" -exec sh -c 'odt2txt "{}" | grep -Eis "budapest" && echo "{}"' \; 2> /dev/null ; cd && echo -e " = = = = =\nRecherche terminée, retour au home."
BUDAPEST
BUDAPEST
./home/MOI/hotel.ods
Mais il y a un "hic" car le message :
= = = = =
Et voici les résultats en .ODT
n'apparait pas comme si la 1-ère partie de la cde ne s'achevait pas et bien sur
le message de fin
= = = = =
Recherche terminée, retour au home.
n'arrive pas non plus. Même après 20 mn d'attente.
Je dois faire un Ctrl-c pour stopper l'opération.
Ceci à décidément l'air d’être lié aux recherches sur fichiers .ods car si je "nettoie" ta commande de la partie .ods pour ne laisser que la partie .odt ça marche.
Autre remarque
J'ai voulu paramétrer ta commande (dans sa forme d'origine c'est à dire la plus courte) comme ci dessous :
sudo find . -iname "*.odt" -exec sh -c 'odt2txt "{}" | grep -iqE "[b]rome[/b]" && echo "{}"' \;
Pour ce faire j'ai créé une variable VILLE="rome"
puis j'ai modifié la ligne de cde :
sudo find . -iname "*.odt" -exec sh -c 'odt2txt "{}" | grep -iqE "[b]$VILLE[/b]" && echo "{}"' \;
mais ça n'a pas marché. 🙁
C'est un fort codeur qui m'a indiqué mon erreur. Il ne faut pas écrire :
sudo find . -iname "*.odt" -exec sh -c 'odt2txt "{}" | grep -iqE "[b]$VILLE[/b]" && echo "{}"' \; # guillemets simples après sh -c
mais
sudo find . -iname "*.odt" -exec sh -c "odt2txt "{}" | grep -iqE "[b]$VILLE[/b]" && echo "{}" " \; # guillemets doubles après sh -c
et là ça marche. 🙂
a+