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

From: LOEWENTHAL Simon <sloewenthal_at_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
Received on Tue May 31 11:43:48 2005

This archive was generated by hypermail 2.1.8 : Thu Mar 03 2016 - 06:43:47 EST