# Nom de fichier à trou: traitement par lot avec find

**URL:** <https://www.debian-fr.org/t/nom-de-fichier-a-trou-traitement-par-lot-avec-find/89016>\
**Category:** Programmation\
**Created:** [Octobre 22, 2023, 6:23 UTC](https://www.debian-fr.org/t/nom-de-fichier-a-trou-traitement-par-lot-avec-find/89016 "2023-10-22T18:23:09Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![josephtux](https://www.debian-fr.org/user_avatar/www.debian-fr.org/josephtux/32/3985_2.png) [@josephtux](https://www.debian-fr.org/u/josephtux)\
**Post date:** [Octobre 22, 2023, 6:23 UTC](https://www.debian-fr.org/t/nom-de-fichier-a-trou-traitement-par-lot-avec-find/89016/1 "2023-10-22T18:23:09Z")

</div>

Bonjour,

je voudrais convertir des séries de fichiers \*wav en \*mp3. Les noms sont composés avec des blancs.

Je sais que _find_ permet d’utiliser ces fichiers correctement, mais je ne retrouve plus la syntaxe. (il y a aussi une commande après un pipe dont j’ai oublié le nom).

---

<div class="post-metadata">

**Author:** ![josephtux](https://www.debian-fr.org/user_avatar/www.debian-fr.org/josephtux/32/3985_2.png) [@josephtux](https://www.debian-fr.org/u/josephtux)\
**Post date:** [Octobre 23, 2023, 10:46 UTC](https://www.debian-fr.org/t/nom-de-fichier-a-trou-traitement-par-lot-avec-find/89016/2 "2023-10-23T10:46:09Z")

</div>

Bonjour,  
je viens de trouver:

Ce que je cherchai:  
il s’agit de formater la sortie avec `-print0` et de la récupérer avec `xargs -0`

Précisions:  
lancer la commande lame avec `xargs -0` ne fonctionne pas, car `lame` ne gère pas les fichiers à trou.  
Mais il suffit d’utiliser `-exec` (ou `-execdir`) pour lancer lame ainsi:

`find ./ -name "*.wav" -type f -print0 -execdir lame --nohist --preset standard "{}" \;`

---

<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:** [Octobre 23, 2023, 4:09 UTC](https://www.debian-fr.org/t/nom-de-fichier-a-trou-traitement-par-lot-avec-find/89016/3 "2023-10-23T16:09:50Z")

</div>

salut  
une autre solution :  
`find ./ -name "*.wav" -type f |while read fich ; do lame --nohist --preset standard "$fich" ; done`

---

<div class="post-metadata">

**Author:** ![josephtux](https://www.debian-fr.org/user_avatar/www.debian-fr.org/josephtux/32/3985_2.png) [@josephtux](https://www.debian-fr.org/u/josephtux)\
**Post date:** [Octobre 24, 2023, 8:58 UTC](https://www.debian-fr.org/t/nom-de-fichier-a-trou-traitement-par-lot-avec-find/89016/4 "2023-10-24T08:58:11Z")

</div>

Merci,  
trés interessant cette faculté de _read_.

Avec _read_, on peut même se passer de _find_:

Pour un répertoire, _ls_ :  
`ls -1 --color=never *.wav | while read fich ; do lame --nohist --preset standard "$fich" ; done`

Pour une arborescence (_tree_ + _grep_ = substitut à find) :  
`tree -naif | grep -E wav$ | while read fich ; do lame --nohist --preset standard "$fich" ; done`
