Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Put your inplace-edit backup files into a subdir

by merlyn (Sage)
on Apr 20, 2003 at 16:01 UTC ( [id://251836]=CUFP: print w/replies, xml ) Need Help??

I just discovered that the inplace-edit value can now include an asterisk to mean "old file". This means you can now do cool tricks like put your "old" versions of the file into a subdirectory with the original name, not a modified name! Here's a one-liner that puts all the old files into a directory named for the unix epoch timestamp (a 10-digit integer increasing by one per second).
perl -pe 'BEGIN { mkdir $^T; $^I = "$^T/*" } s/foo/bar/g' file1 file2 +file3 ...

Replies are listed 'Best First'.
•Re: Put your inplace-edit backup files into a subdir
by merlyn (Sage) on Apr 21, 2003 at 06:08 UTC
    I've had more than one person write to me in the day since I posted this snippet to say "Randal, you forgot the -i! It's not an in-place edit without that!".

    No, I didn't. Setting $^I is the programmatic equivalent to setting -i on the command-line.

    Cool, eh?

    -- Randal L. Schwartz, Perl hacker
    Be sure to read my standard disclaimer if this is a reply.

      I was personally puzzled at what $^T is for a moment, though I knew about $^I. So the simple form would be
      mkdir bak/ ; perl -pi'bak/*' -e 's/foo/bar/g' file1 file2 file3 ...
      Or
      perl -pi'bak/*' -e 'BEGIN { mkdir($^I =~ m!(.*/)!) } s/foo/bar/g' file +1 file2 file3 ...
      Or maybe even
      perl -MFile::Path -pi'bak/*' -e 'BEGIN { mkpath [ $^I =~ m!(.*/)! ] } +s/foo/bar/g' file1 file2 file3 ...
      *grin*

      Makeshifts last the longest.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: CUFP [id://251836]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (4)
As of 2024-04-25 12:41 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found