Jack Stone wrote:
From: Parv <[EMAIL PROTECTED]>
To: Josh Paetzel <[EMAIL PROTECTED]>
CC: Jack Stone <[EMAIL PROTECTED]>, firstname.lastname@example.org
Subject: Re: Search & Replace Issue
Date: Sun, 24 Dec 2006 02:56:32 -0500
in message <[EMAIL PROTECTED]>,
wrote Josh Paetzel thusly...
> On Saturday 23 December 2006 21:29, Jack Stone wrote:
> > Appreciate a tip on how to search & replace hundreds of *.htm
> > files:
> > >From this:
> > <li><a href="http://www.domain.com/tales/wouf.html
> > To this:
> > <li><a href="tales/wouf.html
> perl -p0777i -e 's/http:\/\/www.domain.com\///g' *.htm
Is -0777 really necessary (causes whole file to be stored in
memory)? But that is not really the point of this reply.
Above is a fine opportunity to use alternative delimiters (and to
restrict the matching (only to link URLs)) ...
perl -pi -e 's!(?<=href=")\Qhttp://www.domain.com!!g' *.html
... in case of "hundreds of *.htm", use xargs(1) pipeline ...
find dir-of-HTML-files -type f -name '*.html' -print0 \
| xargs -0 perl -pi -e 's!(?<=href=")\Qhttp://www.domain.com!!g'
Feel free to change Perl version with sed (the version of sed with
-i option) one ...
find ... \
| ... sed -i -e 's,\(href="\)http://www\.domain\.com,\1,g'
 That makes this reply on point.
Parv and all:
Many thanks for these various tips and your time to make them!
I usually use sed(1) myself, but for the life of me, I could not find
a way to properly apply delimiters or syntax to get it to work. I was
close, but no cigar! Too many slashes and commas I guess.
Such a "tool" will indeed be a giant timesaver!
All the best,
One thing with regular expressions though, is that you can control
the command characters to use with defining the search and replace
keywords and replacements. If you see my example, I used pipes because
you had a number of forward slashes (/), so it allows you to cut down on
the number of escaping backslashes in your regular expression / replacement.
Cheers and a Merry Christmas to you too!
email@example.com mailing list
To unsubscribe, send any mail to "[EMAIL PROTECTED]"