[Fwd: Re: Search & Replace Issue]
- From: Mike Jeays <mike.jeays@xxxxxxxxxx>
- Date: Sun, 24 Dec 2006 16:58:06 -0500
--- Begin Message ---_______________________________________________On Sun, 2006-12-24 at 12:13 -0800, Garrett Cooper wrote:
- From: Mike Jeays <mj001@xxxxxxxxxx>
- Date: Sun, 24 Dec 2006 16:57:21 -0500
Jack Stone wrote:
From: Parv <parv@xxxxxxxx>
To: Josh Paetzel <josh@xxxxxxxxx>
CC: Jack Stone <antennex@xxxxxxxxxxx>, freebsd-questions@xxxxxxxxxxx
Subject: Re: Search & Replace Issue
Date: Sun, 24 Dec 2006 02:56:32 -0500
in message <200612232230.58352.josh@xxxxxxxxx>,
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[0]) one ...
find ... \
| ... sed -i -e 's,\(href="\)http://www\.domain\.com,\1,g'
[0] That makes this reply on point.
- Parv
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!
Merry Xmas!
All the best,
Jack
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!
-Garrett
_______________________________________________
freebsd-questions@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions-unsubscribe@xxxxxxxxxxx"
The -i option to sed enables it to rewrite a file in place, removing the
need to create new files, delete the old ones, and rename the new ones.
But it needs careful testing, and should never be used without a good
backup of all the files that it might touch. Powerful tools are often
dangerous!
--- End Message ---
freebsd-questions@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions-unsubscribe@xxxxxxxxxxx"
- Prev by Date: Re: Search & Replace Issue
- Next by Date: Re: hardware acceleration for ATI Radeon 9600 ?
- Previous by thread: hardware acceleration for ATI Radeon 9600 ?
- Next by thread: USB Modem at "HTC Wizard" aka "Qtek 9100" pda phone
- Index(es):
Relevant Pages
|