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

Trevor M. Lango tmlango at member.aiche.org
Wed Nov 24 08:57:03 PST 2004


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!

> HTH,
> FL
>
> _______________________________________________
> vox-tech mailing list
> vox-tech at lists.lugod.org
> http://lists.lugod.org/mailman/listinfo/vox-tech


More information about the vox-tech mailing list