On Saturday 16 August 2008 17:24 in
<20080816162413.GU14206 at project-bob.org>, Proinnsias Breathnach wrote:
> On Sat, Aug 16, 2008 at 04:33:02PM +0100, Marcus Furlong wrote:
>> > sed -e '
>> > s/ my_attribute="ASD"/@="ASD"/g
>> > s/ my_attribute="SDF"/@="SDF"/g
>> > s/ my_attribute="DFG"/@="DFG"/g
>> > s/ my_attribute="FGH"/@="FGH"/g
>> > s/ my_attribute="GHJ"/@="GHJ"/g
>> > s/ my_attribute="HJK"/@="HJK"/g
>> > s/ *my_attribute="[^"]*"//g
>> > s/@="/ my_attribute="/g
>> > '
>> >
>> Could you explain what's happening in the above? I've searched for a
>> similar example with explanations but didn't find one, and now I'm all
>> curious.
>>>> Quite simple really
>> 1) Replace the valid /my_attribute="XYZ"/ strings with /@="XYZ"/
> 2) Remove any remaining /my_attribute=/ strings (the invalid / empty
> ones)
> 3) Replace any occurance of /@=/ with /my_attribute=/ returning the
> strings to their former glory :)
>> Easy really !
Aha! I was over-complicating it in my head, and assumed @ was some sort of
operator or array. So the above could equivalently be written as
sed -e '
s/ my_attribute="\(ASD\|SDF\|DFG\|FGH\|GHJ\|HJK\)"/@="\1"/g
s/ *my_attribute="[^"]*"//g
s/@="/ my_attribute="/g
'
Seems to work for me anyway.
Marcus.
Maintained by the ILUG website team. The aim of Linux.ie is to
support and help commercial and private users of Linux in Ireland. You can
display ILUG news in your own webpages, read backend
information to find out how. Networking services kindly provided by HEAnet, server kindly donated by
Dell. Linux is a trademark of Linus Torvalds,
used with permission. No penguins were harmed in the production or maintenance
of this highly praised website. Looking for the
Indian Linux Users' Group? Try here. If you've read all this and aren't a lawyer: you should be!