[prev in list] [next in list] [prev in thread] [next in thread] 

List:       sun-managers
Subject:    Problem with sed - It misinterprets | (pipe).
From:       LOEWENTHAL Simon <sloewenthal () gemini ! edu>
Date:       2005-05-31 15:14:57
Message-ID: 429C7F71.6010300 () gemini ! edu
[Download RAW message or body]

Dear all Sed madmen,

I'm trying to write something that sets the encrypted field in the 
shadow file to *LK*, but sed will choke whenever the field has a / in 
it, so I wrote something to nest sed inside sed with cut so that it 
replaces instances of / with /\

However, sed chokes when interpreting the |.  I have tried putting ' and 
` in all the places I can think of, but it usually makes it worse.

Cut the encrypted password out and then get gsed to replace the / with 
\, which work fine.

Cat shadow.t

    GogunE:ndY3rmE/bkxt.:12180::::::

    echo `cut -d: -f2 shadow.t`|gsed -s 's/\//\\\//g'

What it correctly produces,

    ndY3rmE\/bkxt.

Finally I use gsed to replace the earlier output with *LK*.

     gsed -e 's/'`echo `cut -d: -f2 shadow.t`|gsed -s 
's/\//\\\//g'`'/\*LK\*/' <shadow.t

Then it chokes,

    ./test: syntax error at line 1: `|' unexpected

Regards, S.

PS. I'm sorry that this is not Sun specific, but I think that there are 
plenty of sed users in the audience, but I've been at this for the past 
5 hours and am starting to doubt my sanity.

-- 

ISG/Gemini/AURA
_______________________________________________
sunmanagers mailing list
sunmanagers@sunmanagers.org
http://www.sunmanagers.org/mailman/listinfo/sunmanagers
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic