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