l i n u x - u s e r s - g r o u p - o f - d a v i s
L U G O D
 
Next Meeting:
October 7: Social gathering
Next Installfest:
TBD
Latest News:
Aug. 18: Discounts to "Velocity" in NY; come to tonight's "Photography" talk
Page last updated:
2004 Nov 24 09:56

The following is an archive of a post made to our 'vox-tech mailing list' by one of its subscribers.

Report this post as spam:

(Enter your email address)
Re: [vox-tech] Using awk or perl to find and replace
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [vox-tech] Using awk or perl to find and replace



On Wed, Nov 24, 2004 at 08:57:03AM -0800, Trevor M. Lango wrote:
> On Wednesday 24 November 2004 00:15, Foo Lim wrote:
> > On Wed, 24 Nov 2004, Trevor M. Lango wrote:
> > > On Tuesday 23 November 2004 23:41, Foo Lim wrote:
> > > > On Tue, 23 Nov 2004, Trevor M. Lango wrote:
> > > > > I have been reading the man pages and I'm lost. ?I want to scan
> > > > > through an input file for an expression with this pattern:
> > > > >
> > > > > ? ? h.*.JPG
> > > > >
> > > > > and replace it with an expression with the following pattern:
> > > > >
> > > > > ? ? *.h.JPG
> > > > >
> > > > > Perl and awk both appear to be ideal candidates for just such a task
> > > > > but I'm a serious newbie to both of 'em. ?Any help much appreciated!
> > > >
> > > > Hi Trevor,
> > > >
> > > > Does the pattern "h.*.JPG" match something like this: h.abc123.JPG ?
> > >
> > > Something like this: "h.#-##-####-####.###.JPG"
> > >
> > > > Since the period "." is a metacharacter in regular expressions.  If
> > > > that's the case, then a perl script like this would work:
> > > >
> > > > while (<>) {
> > > >   s/h\.(.*)\.JPG/$1.h.JPG/g;
> > > >   print;
> > > > }
> > > >
> > > > FL
> >
> > The code above should work.  If it's possible to have multiple files on a
> > line, you may want to change the regex to this:
> >
> >   s/h\.(.*?)\.JPG/$1.h.JPG/g;
> >
> > instead, so it will minimal match instead of do a greedy match.
> 
> Okay I am not having any success.  Perhaps I need to be more specific - I am 
> trying to scan through html files to replace the image references in lines 
> like this one:
> 
>        <img align=right src="/IMAGES/C/h.I-LP-CEUR-AD.003.jpg"
> 
> In this particular example, I need to replace:
> 
>     h.I-LP-CEUR-AD.003.jpg
> 
> with:
> 
>     I-LP-CEUR-AD.003.h.jpg
> 
> Thank you for your responses!

Capitalization counts. If the files are named with a .jpg, then your
regexp pattern has to say .jpg. If the files are named with a .JPG,
then your regexp pattern has to say .JPG. There is a flag that you can
add at the end (were the g is) to do a case insensitive match, but not
to do a case insensitive, but not to make the replacement string case
insensitive.

-- 
I usually have a GPG digital signature included as an attachment.
See http://www.gnupg.org/ for info about these digital signatures.

Attachment: signature.asc
Description: Digital signature

_______________________________________________
vox-tech mailing list
vox-tech@lists.lugod.org
http://lists.lugod.org/mailman/listinfo/vox-tech


LinkedIn
LUGOD Group on LinkedIn
Sign up for LUGOD event announcements
Your email address:
facebook
LUGOD Group on Facebook
'Like' LUGOD on Facebook:

Hosting provided by:
Sunset Systems
Sunset Systems offers preconfigured Linux systems, remote system administration and custom software development.

LUGOD: Linux Users' Group of Davis
PO Box 2082, Davis, CA 95617
Contact Us

LUGOD is a 501(c)7 non-profit organization
based in Davis, California
and serving the Sacramento area.
"Linux" is a trademark of Linus Torvalds.

Sponsored in part by:
Sunset Systems
Who graciously hosts our website & mailing lists!