find and replace
Dazed_75
lthielster at gmail.com
Tue Sep 11 11:30:51 MST 2012
Close. It is a Perl program/script, but your assumptions were correct:
RENAME(1) Perl Programmers Reference Guide
> RENAME(1)
>
> NAME
> rename - renames multiple files
>
> SYNOPSIS
> rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]
>
> DESCRIPTION
> "rename" renames the filenames supplied according to the rule
> specified
> as the first argument. The perlexpr argument is a Perl expression
> which is expected to modify the $_ string in Perl for at least some
> of
> the filenames specified. If a given filename is not modified by the
> expression, it will not be renamed. If no filenames are given on
> the
> command line, filenames will be read via standard input.
>
>
On Tue, Sep 11, 2012 at 11:04 AM, Paul Mooring <paul at opscode.com> wrote:
> I don't have the original conversation, but I would assume rename is a
> script taking 2 arguments. The first a regex to replace the title and the
> second the file list. This would mean rename is the script to be executed,
> the regex is as I described before and the *.JPG would shell expand to any
> file whose name ends in '*.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 10:47 AM
>
> To: Main discussion list <plug-discuss at lists.plug.phoenix.az.us>
> Subject: Re: find and replace
>
> 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!
>>>
>>> ---------------------------------------------------
>>> PLUG-discuss mailing list - PLUG-discuss at lists.plug.phoenix.az.us
>>> To subscribe, unsubscribe, or to change your mail settings:
>>> http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-discuss
>>>
>>
>>
>> ---------------------------------------------------
>> PLUG-discuss mailing list - PLUG-discuss at lists.plug.phoenix.az.us
>> To subscribe, unsubscribe, or to change your mail settings:
>> http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-discuss
>>
>
>
> ---------------------------------------------------
> PLUG-discuss mailing list - PLUG-discuss at lists.plug.phoenix.az.us
> To subscribe, unsubscribe, or to change your mail settings:
> http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-discuss
>
--
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/20120911/fc9a500b/attachment.html>
More information about the PLUG-discuss
mailing list