[ale] sed & regex

Keith Hopkins hne at hopnet.net
Tue Mar 30 10:04:08 EST 2004


Geoffrey wrote:
> Keith Hopkins wrote:
> 
>> Hi folks,
>>
>> I hope someone can point me to the error of my ways....too difficult?
>> Ok, how about a hand at a regex problem?
>>
>> I have some xml files I'm trying to convert for local browsing.
>> "wget -m -k" almost does the trick, but the remaining files have this
>> snippet left in them...
>>
>> "handbook.xml?part" as part of an href.  The actual files have "?" in
>> their names.  If I convert the href from "?" to "%3F" then my browser
>> is all happy and finds the files (otherwise, it prints nasty errors).
>>
>>
>> The question is, how to replace all the "?" with "%3F".  I tried
>> `sed` since that seemed to be the natural solution, but it isn't
>> working like I expected.
> 
> 
> 
>>
>> I do this...
>>
>> sed "s/handbook.xml\?/handbook.xml\%3F/" handbook.xml > handbook.html
>>
>>
>> and sed really converts the string to "handbook.xml??"
>>
>> Where is the extra "?" coming from??
>>
>> Alternately, I tried sed "s/handbook.xml\?part/handbook.xml\%3Fpart/"
>> handbook.xml > handbook.html and that seems to work OK (for those
>> lines that actually have "part" in them).
> 
> 
> Weird it works for me.  Try:
> 
> sed 's/handbook.xml[?]/\handbook.xml\%3F/'
> 
> (single quotes, and the brackets isolate the ?)
> 

Wuderbah!  Single or double quotes didn't make any difference, but the square brackets did the trick.  Thanks Geoffrey.

   BTW, I fobbed the first msg, it was converting to "handbook.xml%3F?" (not double ??, unless viewed in a browser).

-- 
Lost in Tokyo,
   Keith



More information about the Ale mailing list