find and replace

Dennis Kibbe plug at fastmail.us
Mon Sep 24 21:22:02 MST 2012


Most Linux distros ship with rename which is part of the util-linux package. 
To change the extension from JPG to jpg on a set of files in the current 
directory the command is:

$ rename  .JPG .jpg *.JPG

It would be wise to first backup the files just in case. There is no undo on the 
command line.

Dennis Kibbe

On Tuesday, September 11, 2012 11:59:26 AM Michael Havens wrote:

so you tell it:


  rename 's(earch)/string/(replace)string/' file(s to rename)


    rename [ -v ] [ -n ] [ -f ] perlexpr [ files ] 


so the perlexpression is what is in the single quotes?
I think I understand!
:-)~MIKE~(-:



On Tue, Sep 11, 2012 at 11:08 AM, Dazed_75 <lthielster at gmail.com> wrote:

The *.JPG is the set of files for which to do the rename.



On Tue, Sep 11, 2012 at 10:47 AM, Michael Havens <bmike1 at gmail.com> wrote:

So the full string I was given is:
   rename 's/\.JPG$/.jpg/' *.JPG  


So what does the *.JPG do? If you 's(earch)/string/(replace)string' then what 
is the need for *JPG?:-)~MIKE~(-:




On Tue, Sep 11, 2012 at 9:49 AM, Paul Mooring <paul at opscode.com> wrote:

When you do search and replace, the replace section is literal not a pattern 
match.  So piece by piece:
s/ # This means match the first section and replace with the second
\.JPG$/  # This means a literal '.' at any point in the string followed by 
'JPG' then the end of the line
.jpg/ # This is the string to replace the previous regex with '.jpg'
--
Paul Mooring
Systems Engineer and Customer Advocate


www.opscode.com


From: Michael Havens <bmike1 at gmail.com>
Reply-To: Main discussion list <plug-discuss at lists.plug.phoenix.az.us>
Date: Tuesday, September 11, 2012 9:42 AM
To: Main discussion list <plug-discuss at lists.plug.phoenix.az.us>
Subject: Re: find and replace



Hate to resurrect old stuff but in 


   rename 's/\.JPG$/.jpg/' *.JPG


is this saying to s(earch)/(for the string).JPG$/(replace with).jpg/ ? Why 
does one not need the escape character (\) before the period here or before 
the final JPG? What does the *.JPG at the end signify?
:-)~MIKE~(-: 



On Tue, Feb 21, 2012 at 7:32 AM, Sam Kreimeyer <skreimey at gmail.com> wrote:

Here's a pdf of a quick guide to regular expressions
http://www.addedbytes.com/download/regular-expressions-cheat-sheet-v1/pdf/

Basically, it's a format for defining search patterns that supports special 
meanings for certain characters. For instance:

a - finds any string like "a"
a. - finds any string like "a" plus any other character except a new line 
(matches "aa", "ab", "ac", etc)
a.* - finds any string like "a" plus zero or more characters except a new line 
(matches "aa", "abcdefghijk")
Other special characters can further modify this behavior.

So here's an explanation of the earlier command.

's/\.JPG$/.jpg/' *.JPG

Basic search and replace format s/[string we search for]/[string to replace 
matches with]/

"\.JPG$" - Because "." is special, we escape it with "\" to keep the regex 
from interpreting it, so the "." will be treated literally. "JPG" is what 
we're looking for. Placing a "$" at the end of the string tells the regex to 
match the string only at the end of the strings you're searching. This means 
that you will match "example.JPG" but not "JPG.example".

".jpg" - This is our replacement string. This is what goes in the place of 
every match we find.

"*.JPG" - while this isn't part of the regex, "*" is a wildcard (can be 
substituted for any number of characters).

Hope that helps!

-- 

Dazed_75 a.k.a. Larry

Please protect my address like I protect yours. When sending messages to 
multiple recipients, always use the BCC: (Blind carbon copy) and not To: or 
CC:. Remove all addresses from the message body before sending a Forwarded 
message. This can prevent spy programs capturing addresses from the recipient 
list and message body.





-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.PLUG.phoenix.az.us/pipermail/plug-discuss/attachments/20120924/2fdae539/attachment.html>


More information about the PLUG-discuss mailing list