Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 8 Jan 2003 17:38:49 +0100 (MET)
From:      Paul Everlund <tdv94ped@cs.umu.se>
To:        "BigBrother (BigB3)" <bigbrother@bonbon.net>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: Renaming files with spaces in the name to files without spaces..
Message-ID:  <Pine.GSO.4.44.0301081736310.28524-100000@kvist.cs.umu.se>
In-Reply-To: <20030108175539.W65616@bigb3server.bbcluster.gr>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 8 Jan 2003, BigBrother (BigB3) wrote:

> Sorry for this OT but I am trying for some hours to achieve a massive
> rename of files using a simple script and I have not success yet. I want
> to rename files like
>
> "RESULTS OF JAN 01 2002.txt "
>
> to
>
> "RESULTS_OF_JAN_01_2002.txt"
>
> i.e. all the spaces, being substituted by '_', and the last space being
> completely removed [yes it has a space after the suffix]
> I tried to experiment with sed/awk and creating a sample sh script with
> for i in 'ls' ....
>
> but the i takes values of 'RESULTS' 'OF' 'JAN'. This means that it doesnt
> take the full filename as value, but parts of the filenames.
>
> Can u please suggest an easy way to implement the massive rename?

Maybe something like this?

#!/usr/bin/perl
@ls = `ls`;
chomp @ls;
foreach (@ls) {
        $before = $_;
        if(/\ $/) { chop $_; }
        s/\ /_/g;
        system("mv \"$before\" $_");
}

This is the kind of question which will come up with hundreds of
solutions from hundreds of persons. :-)

Before using above script you should make a backup first!

Best regards,
Paul


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.4.44.0301081736310.28524-100000>