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
>