PDA

Visualizza la versione completa : [BASH] ciclo for per operazioni ripetute su serie di file


lino22011
20-08-2011, 13:46
Salve, volevo sapere....
se uso un ciclo for per ripetere la stessa operazione su + file tipo:

for i in `ls `; do touch $i;done

l'operazione funziona ma se il nome file contenuto in $i è costituito da + parole, ogni parola del nome verrà trattata come un file a sè stante....

Ad esempio se il file si chiama "Oggi arrivo.txt" nell'esempio sopra verranno svolti i comandi

touch Oggi
touch arrivo.txt

Come si può evitare questo ?
grazie!

tiro1997
20-08-2011, 13:59
Non ho possibilità di provare ma hai provato con le virgolette "" intorno a $i

tipo touch "$i" ??

non so dirti se è giusto....

tiro1997
20-08-2011, 14:44
Ora l'ho potuto provare...ma credo di averti suggerito una scemenza...

non mi ha funzionato neanche così !!

vortex87
23-08-2011, 00:56
Se non ricordo male puoi evitare di usare "ls", iterando direttamente sui file tramite l'asterisco



for i in *; do
touch "$i"
done

mxa
23-08-2011, 05:09
Originariamente inviato da vortex87
Se non ricordo male puoi evitare di usare "ls", iterando direttamente sui file tramite l'asterisco



for i in *; do
touch "$i"
done


Si imparano sempre cose nuove :fagiano:

Loading