Newsgroup: it.comp.os.linux.iniziare
Titolo: Scriptino per eseguire un comando su molti file

Ciao a tutti,
premetto che sono abbastanza niubbo per quanto riguarda gli script, e per 
fare quello che voglio fare non so da che parte iniziare nè cosa cercare, 
quindi mi rivolgo a voi.
Devo usare il comando pdfcrop su un tot di file contenuti in una 
cartella, però tale comando accetta un solo file alla volta come ingresso.
Si riesce con uno script a eseguire il comando automaticamente n volte 
per ognuno degli n file presenti?
Ogni suggerimento è ben accetto.
Grazie e ciao,
S.

 ingresso.
Non so che faccia pdfcrop, ma tu probabilmente userai:
find blabla | xargs pdfcrop blabla
Man xargs, e man find, per i dettagli.
-- 
Bye, Lem
Ceterum censeo ISLAM esse delendum
____________________________________________________________________________
Non sprecare i cicli idle della tua CPU: 
http://boinc.berkeley.edu/index.php

 ingresso.
for i in *.pdf; do pdfcrop (opzioni) "$i" "$i.pdf"; done
ma non sarei dir se la sintassi sia corretta e se il file di input sia 
correttamente sovrascritto dal file modificato da pdfcrop (sono i miei 
primi script) prova
-- 
Puppy Linux wiki:  
http://puppylover.netsons.org/dokupuppy
Puppy Linux Forum: 
http://puppylinux.ilbello.com
Windows me genuit, Ubuntu rapuere / tenet nunc Puppy Linux...

 Man xargs, e man find, per i dettagli.
*almeno*  xargs -n 1, visto che l'OP ha detto che pdfcrop accetta un solo
argomento. Meglio ancora usare xargs -d '\n' in modo da evitare casini se i
file hanno caratteri strani nel nome. Meglio ancora, non usare xargs :)

 S.
Personalmente voto per
cd /directory_dove_sono_i_pdf
ls *.pdf | while read FILEPDF
do
pdfcrop -opzioni $FILE
done
Bud
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 usare xargs
Ah, mi uccidi! ;)


 done
Alternative:
while read f; do
   pdfcrop -opzioni "$f"
done < <(ls /directory/*.pdf)
for f in /directory/*.pdf; do
   pdfcrop -opzioni "$f"
done
find /directory -maxdepth 1 -name \*.pdf -exec pdfcrop -opzioni "{}" \;
Ciao,
-- 
        Roberto Divia`              Love at first sight is one of the greatest
Dep:PH Bat:53 Mailbox:C02110      labour-saving devices the world has ever seen
Route de Meyrin 385               ---------------------------------------------
Case Postale                                Phone:  
+41-22-767-4994
CH-1211 Geneve 23 CERN                      Fax:    
+41-22-767-9585
Switzerland                                 E-Mail: 
Robert...@cern.ch

 Per questo IMHO meglio -print0 per find e -0 per xargs.
In questo caso ha ragione antani, meglio non usare 
affatto xargs, basta il predicato -exec di find.
 
find $option $startdir $expression -exec pdfcrop $options {} \;

 Per questo IMHO meglio -print0 per find e -0 per xargs.
In questo caso ha ragione antani, meglio non usare 
affatto xargs, basta il predicato -exec di find.
 
find $option $startdir $expression -exec pdfcrop $options {} \;
O meglio ancora un semplice:
for f in *.pdf ...

 Per questo IMHO meglio -print0 per find e -0 per xargs.
Giusto. Pero' allora tanto vale usare direttamente -exec da find.

 il predicato -exec di find.
E ci avete ragione, cribio!
Va beh, va'... anche questa volta i ceci mi torneran buoni. ;(


Rispondo una volta per tutti.
Grazie!
Mi avete dato l'imbarazzo della scelta e la conoscenza di diversi comandi 
che ignoravo e saranno utilissimi anche in futuro!
Ciao,
S.

 > done
OOOPS!!!
Hai ragionissima, ho cannato!


 Ogni suggerimento è ben accetto.
 
o cosi' da riga di comando:
find /home/quelchele/dir/ -name *.pdf -exec /bin/quelchele/pdfcrop {} \;
oppure uno scriptino
 
$ joe /home/quelchele/croppami.sh
#!/bin/bash
for file in /home/quelchele/dir/*.txt
do
pdfcrop ${file}
done
control K+D per salvare
$ chmod +x /home/quelchele/croppami.sh
ciao
-- 
nebbia