SUMMARY: Problem with sed - It misinterprets | (pipe).

From: LOEWENTHAL Simon (sloewenthal@gemini.edu)
Date: Tue May 31 2005 - 11:39:58 EDT


Hi everyone,

Thank-you all for replying so quickly:
As Elvio simply put it:

awk -F":" '{printf("%s:*LK*:%s::::::\n",$1,$3)}' /etc/shadow
While Luc said,

          egrep -v luc /etc/shadow > /tmp/shadow
        echo 'luc:*LK*:::::::' >> /tmp/shadow
        cp /tmp/shadow /etc/shadow
        rm /tmp/shadow
        chmod 400 /etc/shadow

For info, I tried using an @ instead of a /, but got the same result,
 gsed -e 's@'`echo `cut -d: -f2 shadow.t`|gsed -s 's@\/@\\\/@g'`'@\*LK\*@' <shadow.t shadow.n
./test: syntax error at line 1: `|' unexpected

Awk wins this time.
I'd still like to know the sed solution, though.

Many thanks to you all,
S.

LOEWENTHAL Simon wrote:

> 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


This archive was generated by hypermail 2.1.7 : Wed Apr 09 2008 - 23:30:47 EDT