Newsgroup: it.comp.os.unix
Titolo: Rinominare files sotto Unix-SunSolaris

Ciao.
Come faccio a rinominare una serie di file con una determinata estensione
sotto SUN ?
mv *MCSS_MMS* *MCSS_MMS*.new
(sotto dentro una cartella in cui son presenti files aventi il nome creato
in maniera seriale, ovvero formato dalla stringa MCSS_MMS ecc.. ecc.. Vorrei
dare a tali files una estensione)
Ma col comandi di cui sopra mi viene restituito il seguente messaggio
d'errore
"*MCSS_MMS*: *.new not found"
Avete qualche soluzione ?
Grazie,
ciao.
Breck
--------------------------------
Inviato via 
http://usenet.libero.it

done
$ man sh     # E' un linguaggio script, oltreche' una interprete di
comandi...    ;-)
bye G.L.
--
La logica non attiene alla verosimiglianza delle ipotesi,
ma alla coerenza delle tesi con le ipotesi.

  ciao.
ciao ...
-- 
#include <stdio.h>
int main(void){char c[]={10,65,110,116,111,110,105,111,32,98,97,114,98,111,110,
101,32,60,104,105,110,100,101,109,105,116,64,116,105,115,99,97,108,105,110,101,
116,46,105,116,62,10,10,0};printf("%s",c);return 0;}

Ciao.
La soluzione che mi hai proposto va bene per files che non hanno esteensione
(quindi per l'esempio che ti avevo descritto).
Ora ho un nuovo problema che tuttavia non riesco a risolvere mediante il
ciclo for che mi hai descritto :
ho una lista di files con estensione .new.bak all'interno di una directory.
Vorrei rinominare tali files con l'estensione .new (ovvero vorrei togliere
l'estensione .bak), ma con il ciclo for non funziona, la shell mi
restituisce lo stesso errore di qualche thred fa.
Qualche idea ?
Grazie,
ciao.

--------------------------------
Inviato via 
http://usenet.libero.it

 restituisce lo stesso errore di qualche thred fa.
Forse il comando basename potrebbe essere sufficiente, altrimenti suppongo che sia
necessario ricorrere a qualcosa come "awk"...
$ basename pippo.new.bak .bak
pippo.new
$


 ciao.
ciao ...

 done
perchč scomodare sed quando c'č la sostituzione della shell?
for x in `ls *.new.bak`; do mv $x ${x//.bak/}; done
mi pare piů elegante... ;-)
-- 
Emanuele Balla aka Skull
-----------------------------------------------------------------------
Besides, I think [Slackware] sounds better than 'Microsoft', don't you?
(By Patrick Volkerding)

 mi pare più elegante... ;-)
sicuramente .... ciao ...

 "sostituisci il primo al secondo" ??
No, è proprio diversa tutta la sintassi:
${x//pattern_da_cambiare_/pattern_cambiato}
nel caso di prima è perchè abbiamo cambiato con nulla. Rispetto a sed la
sintassi non ha s, ma viene richiamata la sostituzione tramite //;
inoltre manca la trailing /.
E' quella cosa che ti permette di fare quegli interessanti giochini tipo 
${x//\//\\/} che tanto fanno divertire gli amministratori di sistema con
la barba lunga e l'occhio spento :-)
Trovo interessante (se non indispensabile) avere in bookmark (ma io me lo
sono stampato e me lo tengo sul comodino :-P ) 
http://www.tldp.org/LDP/abs/html/
Byez!


for x in `ls *.new.bak`; do mv $x ${x//.bak/}; done
Questa funziona solo con la bash.  Una versione più semplice e più
corretta (che sostituisce .bak solo se è alla fine del nome):
  for x in *.new.bak; do mv $x ${x/%.bak}; done
o anche:
  for x in *.new.bak; do mv $x ${x%.bak}; done

 
sapete dove reperire una guida completa per la korn shell?
Grazie anticipatamente,
Giovanni

  Giovanni
ciao ..
