# Chercher un mot dans 100 fichiers LibO Writer odt

**URL:** <https://www.debian-fr.org/t/chercher-un-mot-dans-100-fichiers-libo-writer-odt/78030>\
**Category:** Programmation\
**Created:** [Novembre 19, 2018, 4:19 UTC](https://www.debian-fr.org/t/chercher-un-mot-dans-100-fichiers-libo-writer-odt/78030 "2018-11-19T16:19:22Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![Papy\_Octet](https://www.debian-fr.org/user_avatar/www.debian-fr.org/papy_octet/32/8503_2.png) [@Papy\_Octet](https://www.debian-fr.org/u/Papy_Octet)\
**Post date:** [Novembre 19, 2018, 4:19 UTC](https://www.debian-fr.org/t/chercher-un-mot-dans-100-fichiers-libo-writer-odt/78030/1 "2018-11-19T16:19:22Z")

</div>

Bonjour,

Je veux chercher un mot précis dans une centaine de fichiers LibreOffice Writer .odt.  
Il est pénible d’ouvrir chaque fichier puis de lancer la recherche sachant que ce mot n’est probablement contenu que dans une poignée de ces fichiers.

Les fichiers en questions sont répartis dans quelques dossiers. La recherche serait lancée dans chacun des dossiers séparément.  
Comment rédiger une telle demande ?

J’ai trouvé ceci :

> [@Grep recherche mot exact dans fichier](https://www.debian-fr.org/t/grep-recherche-mot-exact-dans-fichier/61651/8):
>
> Ton expression est mauvaise utilise plutôt :
> 
> ```auto
> grep -Fcw -- "------AA@toto.fr" < "${fichier}" # pas besoin de wc
> # ou
> awk '$1=="------AA@toto.fr"{c++}END{c}' "${fichier}" # toujours pas besoin de wc
> 
> ```

Ce que je souhaite obtenir est la liste des noms des fichiers qui contiennent le mot recherché.

Je suis sous Debian 9 mise à jour automatiquement ainsi que LibO Version: 5.2.7.2 - Build ID: 1:5.2.7-1+deb9u4.

Merci.

---

<div class="post-metadata">

**Author:** ![lsam](https://www.debian-fr.org/user_avatar/www.debian-fr.org/lsam/32/12965_2.png) [@lsam](https://www.debian-fr.org/u/lsam)\
**Post date:** [Novembre 19, 2018, 4:29 UTC](https://www.debian-fr.org/t/chercher-un-mot-dans-100-fichiers-libo-writer-odt/78030/2 "2018-11-19T16:29:55Z")

</div>

Bonjour,

Ce script, à adapter, sera certainement très utile :

[https://askubuntu.com/questions/938834/grep-for-text-in-odt-or-doc-files](https://askubuntu.com/questions/938834/grep-for-text-in-odt-or-doc-files)

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Novembre 19, 2018, 4:33 UTC](https://www.debian-fr.org/t/chercher-un-mot-dans-100-fichiers-libo-writer-odt/78030/3 "2018-11-19T16:33:25Z")

</div>

Bonjour **Papy\_Octet**

il faudrait d’abord installer le paquetage [odt2txt](https://packages.debian.org/stretch/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

```auto
#!/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](https://debian-facile.org/viewtopic.php?pid=282051#p282051)

* * *

Ou alors,  
sans prendre en compte les sous-répertoires du répertoire de recherche :

```auto
#!/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`**

```auto
odt2txt *.odt | grep -l "Chaîne à rechercher"

```

---

<div class="post-metadata">

**Author:** ![grandtoubab](https://www.debian-fr.org/user_avatar/www.debian-fr.org/grandtoubab/32/4505_2.png) [@grandtoubab](https://www.debian-fr.org/u/grandtoubab)\
**Post date:** [Novembre 19, 2018, 4:37 UTC](https://www.debian-fr.org/t/chercher-un-mot-dans-100-fichiers-libo-writer-odt/78030/4 "2018-11-19T16:37:10Z")

</div>

Salut  
Le format odt ne s’explore pas comme du mode texte  
[https://askubuntu.com/questions/938834/grep-for-text-in-odt-or-doc-files](https://askubuntu.com/questions/938834/grep-for-text-in-odt-or-doc-files)

créer un fichier libsearch.sh

y mettre

```auto
#!/bin/bash

find . -type f -name "*.od*" | while read i ; do
   ["$1"] || { echo "You forgot search string!" ; exit 1 ; }
   unzip -ca "$i" 2>/dev/null | grep -iq "$*"
   if [$? -eq 0] ; then
      echo "string found in $i" | nl
   fi
done

```

quand l’outil est dans le même dossier que les fichiers .odt, ça à l’air de fonctionner  
Exemple je cherche la chaine systemctl

```auto
~/Documents/Linux$ bash libsearch.sh systemctl
     1	string found in ./wifi-poweroff.odt
     1	string found in ./plymouth.odt
     1	string found in ./journalisation-messages-kernel.odt
     1	string found in ./urandom.odt
     1	string found in ./err-noyau-418.odt
     1	string found in ./snap.odt
     1	string found in ./Mon-bluetooth.odt
     1	string found in ./iio-service-delay.odt
     1	string found in ./arret-clavier.odt
     1	string found in ./Avast.odt
     1	string found in ./desactivation-bluetooth.odt
     1	string found in ./snap-core.odt
     1	string found in ./apt-update-perso-cr.odt
     1	string found in ./Apparmor-disable-profile.odt
     1	string found in ./apparmor.odt
     1	string found in ./Anacron-timestamp.odt
     1	string found in ./anbox-desactivation-service.odt
     1	string found in ./Suppression-avahi-daemon.odt
     1	string found in ./anbox-deuxieme.odt
     1	string found in ./update.automatique.odt
     1	string found in ./desactivation-services-evolution.odt
     1	string found in ./smartmontools.odt
     1	string found in ./gerbera.odt
     1	string found in ./Pulseaudio.odt
     1	string found in ./dnsmasq.odt
     1	string found in ./journalctl-err.odt
     1	string found in ./comparaison-boot.odt
     1	string found in ./suivi-température.odt
     1	string found in ./ntpq.odt
     1	string found in ./update-perso-v2.odt
     1	string found in ./Sophos-anti-virus.odt
     1	string found in ./apt-service.odt
     1	string found in ./powertop-systemd.odt
     1	string found in ./alsa-restore-2.odt
     1	string found in ./bluetooth.odt
     1	string found in ./espeakup.odt
     1	string found in ./sppedtest-en-commande.odt
     1	string found in ./réglages-son.odt
     1	string found in ./how-to-systemd.odt

```

---

<div class="post-metadata">

**Author:** ![Papy\_Octet](https://www.debian-fr.org/user_avatar/www.debian-fr.org/papy_octet/32/8503_2.png) [@Papy\_Octet](https://www.debian-fr.org/u/Papy_Octet)\
**Post date:** [Novembre 19, 2018, 5:14 UTC](https://www.debian-fr.org/t/chercher-un-mot-dans-100-fichiers-libo-writer-odt/78030/5 "2018-11-19T17:14:22Z")

</div>

Super !  
Merci à vous.

A+

---

<div class="post-metadata">

**Author:** ![Papy\_Octet](https://www.debian-fr.org/user_avatar/www.debian-fr.org/papy_octet/32/8503_2.png) [@Papy\_Octet](https://www.debian-fr.org/u/Papy_Octet)\
**Post date:** [Novembre 21, 2018, 5:27 UTC](https://www.debian-fr.org/t/chercher-un-mot-dans-100-fichiers-libo-writer-odt/78030/7 "2018-11-21T05:27:00Z")

</div>

Bonjour grandtoubab,

Je reviens tardivement sur ta proposition car un peu “over-booké” comme tout retraité qui se respecte 😉  
Dans le code que tu propose, à quel moment et où dois-je introduire le mot que je veux rechercher dans les fichiers odt ?

Ou peut-être est-il possible que ce programme me demande un ou des mots avant de démarrer la recherche ?  
Je suis une véritable bille dans l’écriture de fichiers bash 😌😌

Merci pour ton aide précieuse.  
A+

Je me réponds à moi-même 😉  
Quand je dis que je suis une bille … la réponse à cette question est dans la réponse de grandtoubab :  
`Linux$ bash libsearch.sh systemctl` 😌  
Il suffit d’écrire le mot recherché juste après l’appel au fichier bash de recherche.

---

<div class="post-metadata">

**Author:** ![quinto.lolo](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/q/c2a13f/32.png) [@quinto.lolo](https://www.debian-fr.org/u/quinto.lolo)\
**Post date:** [Mai 8, 2019, 1:39 UTC](https://www.debian-fr.org/t/chercher-un-mot-dans-100-fichiers-libo-writer-odt/78030/8 "2019-05-08T13:39:20Z")

</div>

Merci  
Grace à vous j’avance

---

<div class="post-metadata">

**Author:** ![Edesaux](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/e/258eb7/32.png) [@Edesaux](https://www.debian-fr.org/u/Edesaux)\
**Post date:** [Mars 26, 2023, 12:16 UTC](https://www.debian-fr.org/t/chercher-un-mot-dans-100-fichiers-libo-writer-odt/78030/9 "2023-03-26T12:16:17Z")

</div>

Bonjour à tous,  
Je cherche un mot dans des fichiers .odt, mais sous mac. Qui saurait comment faire ? dans le terminal ? Merci d’avance pour vos réponses !

---

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Mars 26, 2023, 3:22 UTC](https://www.debian-fr.org/t/chercher-un-mot-dans-100-fichiers-libo-writer-odt/78030/10 "2023-03-26T15:22:11Z")

</div>

> [@Edesaux](#):
>
> Bonjour à tous,  
> Je cherche un mot dans des fichiers .odt, mais sous mac. Qui saurait comment faire ? dans le terminal ? Merci d’avance pour vos réponses !

Ouvre ton propre fil de discussion, si tu ne comprends pas, normalement si le script bash est POSIX il est exécutable tel quel sur toute base Unix, MACOS, BSD, GNU/Linux 😉

---

<div class="post-metadata">

**Author:** ![Edesaux](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/e/258eb7/32.png) [@Edesaux](https://www.debian-fr.org/u/Edesaux)\
**Post date:** [Mars 26, 2023, 3:29 UTC](https://www.debian-fr.org/t/chercher-un-mot-dans-100-fichiers-libo-writer-odt/78030/11 "2023-03-26T15:29:40Z")

</div>

Merci Clochette. J’ai essayé les commandes ci-dessus en vain dans le Terminal…  
Quand à ouvrir un fil de discussion, cela dépasse mes compétences…

---

<div class="post-metadata">

**Author:** ![dindoun](https://www.debian-fr.org/user_avatar/www.debian-fr.org/dindoun/32/4281_2.png) [@dindoun](https://www.debian-fr.org/u/dindoun)\
**Post date:** [Mars 27, 2023, 7:25 UTC](https://www.debian-fr.org/t/chercher-un-mot-dans-100-fichiers-libo-writer-odt/78030/12 "2023-03-27T19:25:47Z")

</div>

> [@Edesaux](#):
>
> ouvrir un fil de discussion

salut  
tu cliques sur créer un sujet , tu mets un titre, tu choissi programmation et c’est parti

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Mars 27, 2023, 8:04 UTC](https://www.debian-fr.org/t/chercher-un-mot-dans-100-fichiers-libo-writer-odt/78030/13 "2023-03-27T20:04:50Z")

</div>

Bonjour

> [@Edesaux](#):
>
> …  
> Quand à ouvrir un fil de discussion, cela dépasse mes compétences…

* * *

Tu cliques en haut et à gauche sur **[debian-fr.org](http://debian-fr.org)** :

 ![Capture d’écran_2023-03-27_21-43-12](https://www.debian-fr.org/uploads/default/original/2X/7/7832e3fdd1003ac00ceaa1e3eb9b480082684987.png)

* * *

Ensuite, en haut et à droite, tu cliques sur + Créer un sujet

 ![Capture d’écran_2023-03-27_21-56-21](https://www.debian-fr.org/uploads/default/original/2X/f/f600995ab277dadc7354b239904d3e9217620bc2.png)

* * *

Tu pourras entrer le titre que tu veux donner à ton nouveau fil de discussion :

 ![Capture d’écran_2023-03-27_21-46-52](https://www.debian-fr.org/uploads/default/original/2X/d/d13fd8bd81dd7077b45df8193f2558515ecf5a28.png)

* * *

Puis tu pourras faire apparaître la liste des catégories existantes  
en cliquant sur Sans catégorie ▾ :

 ![Capture d’écran_2023-03-27_21-48-47](https://www.debian-fr.org/uploads/default/original/2X/b/be88a1231056893e5cfac76b986768971fcacdfc.png)

* * *

Par exemple, clique dans la liste sur la catégorie **Programmation** :

 ![Capture d’écran_2023-03-27_21-50-18](https://www.debian-fr.org/uploads/default/original/2X/4/43a332deae7edcefa35c4ea26752125415b0535d.png)

* * *

tu rédiges ton message :

 ![Capture d’écran_2023-03-27_21-54-44](https://www.debian-fr.org/uploads/default/original/2X/9/9e62b9c5ded2c6016fe55b49f4ca4c57c3640204.png)

* * *

et tu valides ton message en cliquant en bas et à gauche sur le bouton + Créer le sujet
