PDA

View Full Version : [bash]mktemp


NA01
07-11-2003, 17:31
mi serve uno script che rinomini in sequenza tutti i file .jpg che trova nella cartella in cui viene lanciato utilizzando una radice che li passerei io.
ad esempio dovrebbe creare
cicco_01
ciccio_02
ciccio_03

dove io ho passato ciccio_ come argomento a linea di comando.
ho iniziato così, ma già all'inizio mi dà dei problemi :(
per la precisione mktemp mi dice che non riesce a creare il file :cry:

#!/bin/bash

ELENCOFILE=$(mktemp /tmp/list.a) || exit 1
find . -type f -iname '*.jpg' -maxdepth 1 -fprint ELENCOFILE


HELP!

ciao

ethanol
07-11-2003, 18:11
Prova con questo:

-------
#!/bin/bash

n=1;
for i in *.jpg; do
cp "$i" $1$((n++)).jpg
done
-------

Occhio che nella riga cp... c'è un uno, non una elle.
Devi lanciarlo così:

$nomescript radice

Ovviamente dagli i permessi +x e occhio agli spazi che la bash è pignola. Lo script deve stare nella dir dove sono le immagini.
Come si dice di solito, le modifiche sono lasciate per esercizio.

NA01
07-11-2003, 18:14
tx
ora provo!

nel frattemo avevo fatto una cosa del genere
ls *.jpg > /tmp/lista.txt
let contatorer=1
while read f1
do
ext=.jpg
mv -v $f1 nome_$contatore$ext
let contatore=contatore+1
done < /tmp/lista.txt

ma dà problemi con i nomi dei file "non standard"


ora provo il tuo, grazie mille!

ethanol
07-11-2003, 18:25
...ops!

Se vuoi rinominare i file mettici 'mv' invece di 'cp'

Per i file con spazi nel nome mettici "$nome", cioè con le virgolette e dentro il nome variabile con il nome file.

NA01
07-11-2003, 18:31
Originariamente inviato da ethanol
Per i file con spazi nel nome mettici "$nome", cioè con le virgolette e dentro il nome variabile con il nome file.

non ci avevo pensato!
eppure lo sapevo :rolleyes:

grazie mille!
stai vincendo un monumento :sofico: :D

ciao

ethanol
07-11-2003, 18:34
Dehihi...

come quello della Arcuri?