# \[bash\] sort avec sortie grep résultat inattendu

**URL:** <https://www.debian-fr.org/t/bash-sort-avec-sortie-grep-resultat-inattendu/87308>\
**Category:** Programmation\
**Tags:** bash\
**Created:** [Octobre 24, 2022, 9:41 UTC](https://www.debian-fr.org/t/bash-sort-avec-sortie-grep-resultat-inattendu/87308 "2022-10-24T09:41:00Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![linuxpit](https://www.debian-fr.org/user_avatar/www.debian-fr.org/linuxpit/32/12131_2.png) [@linuxpit](https://www.debian-fr.org/u/linuxpit)\
**Post date:** [Octobre 24, 2022, 9:41 UTC](https://www.debian-fr.org/t/bash-sort-avec-sortie-grep-resultat-inattendu/87308/1 "2022-10-24T09:41:00Z")

</div>

Hello à tous,  
Je rencontre un petit souci qui m’arrache les cheveux.

* * *
Ce que j'aimerais faire, c'est une recherche dans un répertoire (de manière récursive), sur un pattern dans de nombreux fichiers PDF, afin qu'il m'affiche les fichiers dans l'ordre décroissant avec le nombre d'occurrences les plus fortes en premier 

```auto

find ~ -type f -name '*.pdf' -exec bash -c 'pdftotext "{}" - 2>/dev/null | grep -iH --label="$(basename "{}")" --color "pistache" 2>/dev/null' \;

```

Cette sortie m’affiche bien le nom des fichiers sans l’extension qui contienne le pattern choisi ‹&nbsp;pistache&nbsp;› ici pour l’exemple  
Jusque là c’est OK pour moi rien à signaler

* * *
[![Screen-Shot-2022-10-24-a-11-33-40](https://i.ibb.co/hDNdBKt/Screen-Shot-2022-10-24-a-11-33-40.jpg)](https://ibb.co/hDNdBKt)
* * *
maintenant j'aimerais qu'il me compte les occurrences trouvées Je change donc en 

```auto
find -type f -name '*.pdf' -exec bash -c 'pdftotext "{}" - 2>/dev/null | grep -icH --label="$(basename "{}")" --color "pistache" 2>/dev/null' \;

```

Voila ce que ça donne

* * *
[![Screen-Shot-2022-10-24-a-10-51-45](https://i.ibb.co/Z1vpB6w/Screen-Shot-2022-10-24-a-10-51-45.jpg)](https://ibb.co/Z1vpB6w)
* * *
Donc ça c'est ok aussi 

Seulement j’aimerais trier par ordre décroissant et la rien y fait j’arrive pas

```auto
find ~ -type f -name '*.pdf' -exec bash -c 'pdftotext "{}" - 2>/dev/null | grep -icH --label="$(basename "{}")" --color "pistache" 2>/dev/null | sort -t: -k2 -rn ' \;

```

ne fonctionne pas , il ne me les trie pas

* * *
[![Screen-Shot-2022-10-24-a-12-03-17](https://i.ibb.co/tBmr50g/Screen-Shot-2022-10-24-a-12-03-17.jpg)](https://ibb.co/tBmr50g)
* * *
j'ai essayé avec un cut comme ceci 

```auto
find ~ -type f -name '*.pdf' -exec bash -c 'pdftotext "{}" - 2>/dev/null | grep -icH --label="$(basename "{}")" --color "pistache" 2>/dev/null | cut -d ":" -f2 ' \;

```

il me les coupe bien sans souci

* * *
[![Screen-Shot-2022-10-24-a-12-06-23](https://i.ibb.co/Rc6GN8f/Screen-Shot-2022-10-24-a-12-06-23.jpg)](https://ibb.co/Rc6GN8f)
* * *

mais la encore si j’essai de trier ca ne fonctionne pas

```auto
find ~ -type f -name '*.pdf' -exec bash -c 'pdftotext "{}" - 2>/dev/null | grep -icH --label="$(basename "{}")" --color "pistache" 2>/dev/null | cut -d ":" -f2 | sort -rn ' \;

```

* * *
[![Screen-Shot-2022-10-24-a-12-09-22](https://i.ibb.co/BwZQXx3/Screen-Shot-2022-10-24-a-12-09-22.jpg)](https://ibb.co/BwZQXx3)
* * *

Si vous aviez une piste ce serait sympa  
Merci

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Octobre 24, 2022, 10:03 UTC](https://www.debian-fr.org/t/bash-sort-avec-sortie-grep-resultat-inattendu/87308/2 "2022-10-24T10:03:57Z")

</div>

> [@linuxpit](#):
>
> ![ScreenShot 2022-10-24 à 10.51.45](https://www.debian-fr.org/uploads/default/original/2X/9/9a1b9c9b6562af5d61fc11ae10aa3c530119dac9.jpeg)

Ca ne passe pas , fait un copier coller du résultat, l’image ce n’est pas terrible 🙂 utilise `sort -r` sans le `-n`

---

<div class="post-metadata">

**Author:** ![linuxpit](https://www.debian-fr.org/user_avatar/www.debian-fr.org/linuxpit/32/12131_2.png) [@linuxpit](https://www.debian-fr.org/u/linuxpit)\
**Post date:** [Octobre 24, 2022, 10:11 UTC](https://www.debian-fr.org/t/bash-sort-avec-sortie-grep-resultat-inattendu/87308/3 "2022-10-24T10:11:19Z")

</div>

J’ai éditer correctement le post pour l’affichage des images  
je me suis un peu embrouiller à la rédaction

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Octobre 24, 2022, 10:23 UTC](https://www.debian-fr.org/t/bash-sort-avec-sortie-grep-resultat-inattendu/87308/4 "2022-10-24T10:23:17Z")

</div>

🙂 pour les images, bof 😉

---

<div class="post-metadata">

**Author:** ![linuxpit](https://www.debian-fr.org/user_avatar/www.debian-fr.org/linuxpit/32/12131_2.png) [@linuxpit](https://www.debian-fr.org/u/linuxpit)\
**Post date:** [Octobre 24, 2022, 10:25 UTC](https://www.debian-fr.org/t/bash-sort-avec-sortie-grep-resultat-inattendu/87308/5 "2022-10-24T10:25:22Z")

</div>

Bon bah j’ai réussi à le faire fonctionner mais par contre si une âme charitable pourrait m’expliquer pourquoi dans l’exec ça passe pas

```auto
find ~ -type f -name '*.pdf' -exec bash -c 'pdftotext "{}" - 2>/dev/null | grep -icH --label="$(basename "{}")" --color "pistache" 2>/dev/null ' \; | xargs -I % echo "%" |sort -t: -k2 -rn

```

* * *
[![Screen-Shot-2022-10-24-a-12-23-42](https://i.ibb.co/sQRmyG1/Screen-Shot-2022-10-24-a-12-23-42.jpg)](https://ibb.co/sQRmyG1)
* * *
On voit ici que ça fonctionne j'avais pensé a xargs j'ai tester et c'est passé :-)

---

<div class="post-metadata">

**Author:** ![Almtesh](https://www.debian-fr.org/user_avatar/www.debian-fr.org/almtesh/32/10312_2.png) [@Almtesh](https://www.debian-fr.org/u/Almtesh)\
**Post date:** [Octobre 25, 2022, 6:53 UTC](https://www.debian-fr.org/t/bash-sort-avec-sortie-grep-resultat-inattendu/87308/6 "2022-10-25T06:53:12Z")

</div>

Bonjour,

Les images ne sont pas pratiques à lire, merci de faire un copier-coller et de les mettre dans des balises préformatées.  
Les images sont beaucoup plus lourdes que le texte et réduisent l’accessibilité, évite donc de mettre des images à la place du texte, surtout quand tu peux faire un copier-coller.

---

<div class="post-metadata">

**Author:** ![PascalHambourg](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pascalhambourg/32/5837_2.png) [@PascalHambourg](https://www.debian-fr.org/u/PascalHambourg)\
**Post date:** [Octobre 26, 2022, 8:06 UTC](https://www.debian-fr.org/t/bash-sort-avec-sortie-grep-resultat-inattendu/87308/7 "2022-10-26T08:06:33Z")

</div>

> [@linuxpit](#):
>
> pourquoi dans l’exec ça passe pas

La commande passée en argument à `-exec` est exécutée pour chaque fichier et ne concerne que celui-là, il n’y a donc rien à trier. Il faut trier la sortie globale de la commande `find`.

---

<div class="post-metadata">

**Author:** ![anon36725218](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/8e8cbc/32.png) [@anon36725218](https://www.debian-fr.org/u/anon36725218)\
**Post date:** [Octobre 30, 2022, 3:50 UTC](https://www.debian-fr.org/t/bash-sort-avec-sortie-grep-resultat-inattendu/87308/8 "2022-10-30T15:50:32Z")

</div>

> [@Almtesh](#):
>
> et réduisent l’accessibilité

😅
