Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??

There's no easy way to do this save for parsing the replace-with string yourself. There's a rename script which comes with Perl, that allows you to pass Perl code as the first parameter, which it then executes for every file, passing the filename in $_ and moving the file if the code modified $_.

Note that $1 et al are most likely subject to parsing by the shell on Unixoid systems, as are parens and the backslash, so if you want to use them, you'll need to enclose the parameters in single quotes to prevent those characters from being interpreted by the shell.

Probably the sanest solution would be to use a printfish syntax for the right side, composing a new string from the captured bits for every match. Something like this (untested; esp. the pattern).

my ($re, $fmt) = @ARGV; function reformat { local $_ = $fmt; s/%(?:(\d+)|.)/$_[$1] if defined $1/ge; return $_; } # ... $re = qr/$re/; # precompile for(@list_of_files) { next unless (my @capture = /$re/); rename $_, reformat(@capture); }
You'd then call it something like foo '(.+)-(\d{,2})\.ext' moof-%1-%2.newext, using %% to use literal percent signs in the replace-with name.

Makeshifts last the longest.


In reply to Re: mmv-like hack in perl? (don't use s///) by Aristotle
in thread mmv-like hack in perl? by mpd

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others browsing the Monastery: (None)
    As of 2024-04-25 00:55 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?

      No recent polls found