Il 28 ottobre 2011 09:33, Michele Bert <micbert75@xxxxxxxxx> ha scritto: > Ok, andiamo avanti. Devo cambiare il nome di una serie di files da > *_torre_*.txt in "* torre *.txt" > > Il comando su un singolo file potrebbe essere: > > mv input_torre_04_07.txt "input torre 04_07.txt" > > oppure > > mv input_torre_04_07.txt input\ torre\ 04_07.txt > > La riga che mi viene in mente, basata sul primo dei due comendi, è: > > for file in *_torre_*.txt ; do mv $file \"`echo $file |sed > "s/_torre_/ torre /"`\"; done > > questa non va perché il comando mv vede gli spazi prima e dopo torre > come separatori, e quindi si vede 4 argomenti invece di 2. > > Il secondo caso non riesco ad implementarlo, perché non trovo come > inserire il carattere '\' nella stringa sostitutiva del comando sed. > > Idee? > > Michele > -- > Per iscriversi (o disiscriversi), basta spedire un messaggio con OGGETTO > "subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx > > > A volte si può rendere "più leggibile" il comando sed utilizzando un separatore diverso dal " (doppio apice). Ad esempio la @. :~$ cat torre Fra_torre_uno Tra_torre_due Per_torre_tre :~$ cat torre|sed "s@_torre_@\\\ torre\\\ @"|sed "s/^/>/"|sed "s/$/</" Fra\ torre\ uno Tra\ torre\ due Per\ torre\ tre :~$ cat torre|sed "s@_torre_@\\\ torre\\\ @" >Fra\ torre\ uno< >Tra\ torre\ due< >Per\ torre\ tre< -- Per iscriversi (o disiscriversi), basta spedire un messaggio con OGGETTO "subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx