Re: find et espaces dans noms de fichier

Top Page

Reply to this message
Author: Christian Bayle
Date:  
To: Lucas Nussbaum
CC: Stephane Bonhomme, ML Guilde
Subject: Re: find et espaces dans noms de fichier
A noter que les "for i in `find ..`" sont une tres mauvaise idée car le
find peut exceder la taille maximum autorisée
utiliser de préference les find .. | while read line
do
    manipule "$line"
done


Lucas Nussbaum wrote:
> On 19/06/07 at 11:05 +0200, Stephane Bonhomme wrote:
>
>> Bonjour à tous
>>
>> Je cherche à faire un script shell qui extrait le texte de fichiers pdf.
>> Mes pdf sont dans une arborescence de répertoires, et je voudrait
>> boucler dessus pour appeller la commande pdftotext
>>
>> Je fais donc
>>
>> for p in `find $basepath -name *\.pdf`; do
>>    pdftotext $p $p.txt
>> done

>>
>
> find $basepath -name '*.pdf' | while read p; do
> pdftotext "$p" "$p.txt"
> done
>
> ou
> find $basepath -name '*.pdf' -exec pdftotext "{}" "{}.txt" \;
>
> La premiere solution peut facilement etre améliorée en:
>
> find $basepath -name '*.pdf' | while read p; do
> pdftotext "$p" "${p%.pdf}.txt"
> done
> .
> Pour éviter les fichiers en .pdf.txt
>