zsh-users
 help / color / mirror / code / Atom feed
* Renaming multiple files
@ 2000-01-15 16:52 Andrei Zmievski
  2000-01-15 17:11 ` Andre Pang
  0 siblings, 1 reply; 11+ messages in thread
From: Andrei Zmievski @ 2000-01-15 16:52 UTC (permalink / raw)
  To: zsh-users

How can I rename all files with one extension to another? For example,
all *.phtml files to *.php.

-Andrei

Some people try to achieve immortality through their work, others
through their children. I hope to achieve immortality by not dying.
-- Woody Allen


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Renaming multiple files
  2000-01-15 16:52 Renaming multiple files Andrei Zmievski
@ 2000-01-15 17:11 ` Andre Pang
  2000-01-15 17:11   ` Andrei Zmievski
  2000-01-16 15:31   ` Thomas Köhler
  0 siblings, 2 replies; 11+ messages in thread
From: Andre Pang @ 2000-01-15 17:11 UTC (permalink / raw)
  To: zsh-users

On Sat, Jan 15, 2000 at 10:52:48AM -0600, Andrei Zmievski wrote:

> How can I rename all files with one extension to another? For example,
> all *.phtml files to *.php.

My (fairly dumb) solution:

for i in *.phtml; do mv $i $(basename $i .phtml).php; done

It does have the advantage of being fairly easy to remember and it'll work
on any shell.  (Well, if you change $(...) to `...`, anyway.)

I'm sure somebody here can come up with an answer that'll win some
obsfucated "How to rename all files with one extension to another" zsh
content :).


-- 
: Andre Pang <andrep@vjolnir.org> - Purruna Pty Ltd - ph# 0411.882299 :
:               #ozone - http://www.vjolnir.org/ozone/                :


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Renaming multiple files
  2000-01-15 17:11 ` Andre Pang
@ 2000-01-15 17:11   ` Andrei Zmievski
  2000-01-16 15:31   ` Thomas Köhler
  1 sibling, 0 replies; 11+ messages in thread
From: Andrei Zmievski @ 2000-01-15 17:11 UTC (permalink / raw)
  To: zsh-users

On Sun, 16 Jan 2000, Andre Pang wrote:
> I'm sure somebody here can come up with an answer that'll win some
> obsfucated "How to rename all files with one extension to another" zsh
> content :).

That's what I needed. :)

-Andrei

The Heineken Uncertainty Principle:
  You can never be sure how many beers you had last night.


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Renaming multiple files
  2000-01-15 17:11 ` Andre Pang
  2000-01-15 17:11   ` Andrei Zmievski
@ 2000-01-16 15:31   ` Thomas Köhler
  2000-01-18 15:40     ` Andy Spiegl
  1 sibling, 1 reply; 11+ messages in thread
From: Thomas Köhler @ 2000-01-16 15:31 UTC (permalink / raw)
  To: zsh-users

On Sat, Jan 15, 2000 at 06:07:47PM +0100,
Andre Pang <andrep-ml@vjolnir.org> wrote:
> 
> On Sat, Jan 15, 2000 at 10:52:48AM -0600, Andrei Zmievski wrote:
> 
> > How can I rename all files with one extension to another? For example,
> > all *.phtml files to *.php.
> 
> My (fairly dumb) solution:
> 
> for i in *.phtml; do mv $i $(basename $i .phtml).php; done
>
> It does have the advantage of being fairly easy to remember and it'll work
> on any shell.  (Well, if you change $(...) to `...`, anyway.)
> 
> I'm sure somebody here can come up with an answer that'll win some
> obsfucated "How to rename all files with one extension to another" zsh
> content :).

for i in *.phtml ; do mv $i ${i:r}.php ; done

Well, works with zsh - and is of course shorter, doesn't need basename
etc... :-)

jean-luc@picard (ttypts/5) ~> which basename
/bin/basename

-> No extra process, this starts to get really funny if you rename a few
thousand files at once :-)

Here's a test:
jean-luc@picard (ttypts/5) ~/test/zsh> for i in {1..1000} ;
do touch $i.phtml ; done

jean-luc@picard (ttypts/5) ~/test/zsh> time (for i in *.phtml;
 do mv $i $(basename $i .phtml).php; done)
( for i in *.phtml; do; mv $i $(basename $i .phtml).php; done )
 7,16s user 9,94s system 98% cpu 17,380 total

jean-luc@picard (ttypts/5) ~/test/zsh> time (for i in *.php;
do mv $i ${i:r}.phtml; done)     
( for i in *.php; do; mv $i ${i:r}.phtml; done )
 3,22s user 5,04s system 99% cpu 8,328 total

Hey, that's more than twice as fast ;-)

CU,
Thomas

-- 
 Thomas Köhler Email:   jean-luc@picard.franken.de   | LCARS - Linux for
     <><        WWW:  http://home.pages.de/~jeanluc/ | Computers on All
                IRC:             jeanluc             | Real Starships
   PGP public key: http://www.mayn.de/users/jean-luc/PGP-Public.asc


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Renaming multiple files
  2000-01-16 15:31   ` Thomas Köhler
@ 2000-01-18 15:40     ` Andy Spiegl
  2000-01-18 15:41       ` Andrei Zmievski
  2000-01-18 16:41       ` Renaming multiple files Thomas Köhler
  0 siblings, 2 replies; 11+ messages in thread
From: Andy Spiegl @ 2000-01-18 15:40 UTC (permalink / raw)
  To: zsh-users

> for i in *.phtml ; do mv $i ${i:r}.php ; done
Nifty.  But do you guys know mmv?
It's as easy as this:
 mmv '*.phtml' '#1.php'

> Well, works with zsh - and is of course shorter, doesn't need basename
> etc... :-)
dito. :-)

> jean-luc@picard (ttypts/5) ~/test/zsh> time (for i in *.php;
> do mv $i ${i:r}.phtml; done)     
> ( for i in *.php; do; mv $i ${i:r}.phtml; done )
>  3,22s user 5,04s system 99% cpu 8,328 total

eule:~/tmp>time mmv '*.phtml' '#1.php'
 0,03s user 0,46s system 100% cpu 0,487 total

What is 3,22 divided by 0,03?  :-)

Bye,
 Andy.

-- 
 E-Mail: Andy@spiegl.de     URL: http://andy.spiegl.de
 PGP/GPG: see headers
                                o      _     _         _
  --------- __o       __o      /\_   _ \\o  (_)\__/o  (_)
  ------- _`\<,_    _`\<,_    _>(_) (_)/<_    \_| \   _|/' \/
  ------ (_)/ (_)  (_)/ (_)  (_)        (_)   (_)    (_)'  _\o_
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 Harrisberger's Fourth Law of the Lab:
         Experience is directly proportional to
         the amount of equipment ruined.


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Renaming multiple files
  2000-01-18 15:40     ` Andy Spiegl
@ 2000-01-18 15:41       ` Andrei Zmievski
  2000-01-18 16:39         ` Renaming multiple files (OT) Andy Spiegl
  2000-01-18 16:41       ` Renaming multiple files Thomas Köhler
  1 sibling, 1 reply; 11+ messages in thread
From: Andrei Zmievski @ 2000-01-18 15:41 UTC (permalink / raw)
  To: zsh-users

On Tue, 18 Jan 2000, Andy Spiegl wrote:
> > for i in *.phtml ; do mv $i ${i:r}.php ; done
> Nifty.  But do you guys know mmv?
> It's as easy as this:
>  mmv '*.phtml' '#1.php'

What is mmv?

-Andrei

Any sufficiently advanced bug is
indistinguishable from a feature.
                -- Rich Kulawiec


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Renaming multiple files (OT)
  2000-01-18 15:41       ` Andrei Zmievski
@ 2000-01-18 16:39         ` Andy Spiegl
  0 siblings, 0 replies; 11+ messages in thread
From: Andy Spiegl @ 2000-01-18 16:39 UTC (permalink / raw)
  To: zsh-users

[Sorry, a little off topic]

> What is mmv?
It's a free tool from Usenet and can be called as
 mmv, mcp, mad or mln

I installed it as a Debian Package.  You can get it (and the source) from
here:  http://www.debian.org/Packages/unstable/utils/mmv.html

And here's the README, or better Copyright:


This is the Debian GNU/Linux prepackaged version of mmv.

This package was put together by Michael Meskes <meskes@debian.org>,
from sources obtained from USENET.

Copyright (c) 1989 Vladimir Lanin

Mmv is freeware. That means that the entire package of software and
documentation is copyrighted, and may not be distributed with any
modifications or for any charge (without the author's explicit written
permission). Other than that, it may be used and distributed freely.

Vladimir Lanin
330 Wadsworth Ave, Apt 6F
New York, NY 10040

lanin@csd2.nyu.edu
...!cmcl2!csd2!lanin

However, Vladimir told me:

Michael,

This message is to serve as an announcement that I am changing the
copyright of mmv to GPL.

If this message is in any way insufficient to do so, please tell me what
I have to do. Please keep in mind that I do not have in hand either the
full GPL text or the source code of the last mmv release (oops).

If there is any other way that I can help out, please tell me.

Thanks,

Vladimir Lanin
vlad@brm.com

Thanks to Joost for getting into touch with him.

-------------

Hope that helps,
 Andy.

-- 
 E-Mail: Andy@spiegl.de     URL: http://andy.spiegl.de
 PGP/GPG: see headers
                                o      _     _         _
  --------- __o       __o      /\_   _ \\o  (_)\__/o  (_)
  ------- _`\<,_    _`\<,_    _>(_) (_)/<_    \_| \   _|/' \/
  ------ (_)/ (_)  (_)/ (_)  (_)        (_)   (_)    (_)'  _\o_
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 I've learned....                                                                  
  that the less time I have to work with, the more things I get done.


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Renaming multiple files
  2000-01-18 15:40     ` Andy Spiegl
  2000-01-18 15:41       ` Andrei Zmievski
@ 2000-01-18 16:41       ` Thomas Köhler
  2000-01-18 17:18         ` Andy Spiegl
  2000-01-18 20:00         ` Peter Stephenson
  1 sibling, 2 replies; 11+ messages in thread
From: Thomas Köhler @ 2000-01-18 16:41 UTC (permalink / raw)
  To: zsh-users

On Tue, Jan 18, 2000 at 04:41:10PM +0100,
Andy Spiegl <zsh.Andy@spiegl.de> wrote:
> 
> > for i in *.phtml ; do mv $i ${i:r}.php ; done
> Nifty.  But do you guys know mmv?
> It's as easy as this:
>  mmv '*.phtml' '#1.php'

And, well, doesn't let zsh globbing work. Bad :-}

How do you do
for i in **/*.php(I) ; do mv $i ${i:r}.phtml ; done
with mmv?

[Of course mmv is faster as it only spawns one process instead of many]
[Let's try again with other means...
553 jean-luc@picard (ttypts/12) ~/test/zsh> zmodload files
554 jean-luc@picard (ttypts/12) ~/test/zsh> time (for i in *.php ;
do mv $i ${i:r}.phtml ; done )
( for i in *.php; do; mv $i ${i:r}.phtml; done )
0,09s user 0,61s system 94% cpu 0,739 total
We're in business again :-)]

> Bye,
>  Andy.

CU,
Thomas

-- 
 Thomas Köhler Email:   jean-luc@picard.franken.de   | LCARS - Linux for
     <><        WWW:  http://home.pages.de/~jeanluc/ | Computers on All
                IRC:             jeanluc             | Real Starships
   PGP public key: http://www.mayn.de/users/jean-luc/PGP-Public.asc


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Renaming multiple files
  2000-01-18 16:41       ` Renaming multiple files Thomas Köhler
@ 2000-01-18 17:18         ` Andy Spiegl
  2000-01-18 17:38           ` Zefram
  2000-01-18 20:00         ` Peter Stephenson
  1 sibling, 1 reply; 11+ messages in thread
From: Andy Spiegl @ 2000-01-18 17:18 UTC (permalink / raw)
  To: zsh-users

> How do you do
> for i in **/*.php(I) ; do mv $i ${i:r}.phtml ; done
> with mmv?
I'm not sure (haven't looked at the man page for a long time), but I
suppose you can't do it.  Anyway: zsh is always better. :-)

> 553 jean-luc@picard (ttypts/12) ~/test/zsh> zmodload files
What does that command mean?

> 554 jean-luc@picard (ttypts/12) ~/test/zsh> time (for i in *.php ;
> do mv $i ${i:r}.phtml ; done )
> ( for i in *.php; do; mv $i ${i:r}.phtml; done )
> 0,09s user 0,61s system 94% cpu 0,739 total
Wow, this one command really speeds it up that much.

Bye,
 Andy.

-- 
 E-Mail: Andy@spiegl.de     URL: http://andy.spiegl.de
 PGP/GPG: see headers
                                o      _     _         _
  --------- __o       __o      /\_   _ \\o  (_)\__/o  (_)
  ------- _`\<,_    _`\<,_    _>(_) (_)/<_    \_| \   _|/' \/
  ------ (_)/ (_)  (_)/ (_)  (_)        (_)   (_)    (_)'  _\o_
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 USER, n.:  The word computer professionals use when they mean "idiot."
               -- Dave Barry, "Claw Your Way to the Top"


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Renaming multiple files
  2000-01-18 17:18         ` Andy Spiegl
@ 2000-01-18 17:38           ` Zefram
  0 siblings, 0 replies; 11+ messages in thread
From: Zefram @ 2000-01-18 17:38 UTC (permalink / raw)
  To: Andy Spiegl; +Cc: zsh-users

Andy Spiegl wrote:
>> 553 jean-luc@picard (ttypts/12) ~/test/zsh> zmodload files
>What does that command mean?

It loads the `files' module.  Modules generally add new capabilities to
zsh; this module provides some new builtin commands, among them `mv'.
The result is that, in the loop, the zsh process actually calls rename(),
rather than forking off a new process to exec /bin/mv.

-zefram


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Renaming multiple files
  2000-01-18 16:41       ` Renaming multiple files Thomas Köhler
  2000-01-18 17:18         ` Andy Spiegl
@ 2000-01-18 20:00         ` Peter Stephenson
  1 sibling, 0 replies; 11+ messages in thread
From: Peter Stephenson @ 2000-01-18 20:00 UTC (permalink / raw)
  To: zsh-users

Thomas K hler wrote:
> On Tue, Jan 18, 2000 at 04:41:10PM +0100,
> Andy Spiegl <zsh.Andy@spiegl.de> wrote:
> > 
> > > for i in *.phtml ; do mv $i ${i:r}.php ; done
> > Nifty.  But do you guys know mmv?
> > It's as easy as this:
> >  mmv '*.phtml' '#1.php'
> 
> And, well, doesn't let zsh globbing work. Bad :-}

I wrote a function zmv that does; it would work like this:
  zmv '(*).phtml' '$1.php'
(positional parameters match parentheses). The bad news is it only works
with the latest development version, not 3.1.6.  However, I'll add it to
Functions/Misc from now on (it was posted to zsh-workers a few of months
ago), and it'll appear in future versions. 

> How do you do
> for i in **/*.php(I) ; do mv $i ${i:r}.phtml ; done
> with mmv?

Actually, further bad news is that you can't do **/... with zmv yet, but
I expect that can be fixed.  I'll have a look sometime.

-- 
Peter Stephenson <pws@pwstephenson.fsnet.co.uk>


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2000-01-18 19:58 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-01-15 16:52 Renaming multiple files Andrei Zmievski
2000-01-15 17:11 ` Andre Pang
2000-01-15 17:11   ` Andrei Zmievski
2000-01-16 15:31   ` Thomas Köhler
2000-01-18 15:40     ` Andy Spiegl
2000-01-18 15:41       ` Andrei Zmievski
2000-01-18 16:39         ` Renaming multiple files (OT) Andy Spiegl
2000-01-18 16:41       ` Renaming multiple files Thomas Köhler
2000-01-18 17:18         ` Andy Spiegl
2000-01-18 17:38           ` Zefram
2000-01-18 20:00         ` Peter Stephenson

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).