[Tech] Sostituire gli spazi bianchi con underscore (fwd)
Franco Bagnoli
bagnoli@dma.unifi.it
Mar 29 Giu 2004 22:51:09 CEST
ma è arrivata il lista?
--
Franco Bagnoli (franchino) <bagnoli@dma.unifi.it>
virtual location: Dipartimento di Energetica "S. Stecco"
ultra-virtual affiliation: Centro Dinamiche Complesse (CSDC-Firenze)
real location: Dip. Matematica Applicata "G. Sansone", Universita' Firenze,
Via S. Marta, 3 I-50139 Firenze, Italy. Tel. +39 0554796422, fax: +39 055471787
---------- Forwarded message ----------
Date: Tue, 29 Jun 2004 18:13:16 +0200 (CEST)
From: Franco Bagnoli <bagnoli@dma.unifi.it>
To: Discussioni tecniche <tech@firenze.linux.it>
Subject: Re: [Tech] Sostituire gli spazi bianchi con underscore
On Tue, 29 Jun 2004, paolo palmerini wrote:
>
> On 06/29/04 15:12:34, Mattia Brunetti wrote:
> > Sono nuovo e' da poco che utilizzo linux e la bash :D
> >
> > Voglio sotituire gli spazi bianchi nel nome di tutti i file di una
> > directory
> > con l'underscore o altro carattere con uno script in bash.
> > Non vorrei scomodare il siglor perl :)
> >
>
> rename "s/\s/_/g" *.*
a parte che casomai agisce solo sui file con estensione, non mi sembra che
funzioni....
io proverei un
for file in *; do mv \'$file\' ${file// /_/}; done;
solo che non funziona perché i file senza spazio non vengono testati.
sono riuscito con
find . -name '* *' -exec bash -c 'a="{}"; mv "$a" ${a/ /_}' \;
(dovrebbe funzionare anche con un for)
che quanto a incomprensibilità mi sembra peggio del perl
perl -e 'foreach $file (@ARGV) {($newfile = $file) =~ s/ /_/g;
rename $file, $newfile if $file ne $newfile}' *
--
Franco Bagnoli (franchino) <bagnoli@dma.unifi.it>
virtual location: Dipartimento di Energetica "S. Stecco"
ultra-virtual affiliation: Centro Dinamiche Complesse (CSDC-Firenze)
real location: Dip. Matematica Applicata "G. Sansone", Universita' Firenze,
Via S. Marta, 3 I-50139 Firenze, Italy. Tel. +39 0554796422, fax: +39 055471787
Maggiori informazioni sulla lista
flug-tech