[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