[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