replace text

The below command would replace pwdwarntime = 0 to  pwdwarntime = 14
cat /etc/security/user | sed "127,200s/pwdwarntime = 0/pwdwarntime = 14/"

But I require to replace pwdwarntime = XX to pwdwarntime = 14

XX mean any value.

Thanks in advance
LVL 2
madan1278Asked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
dtkernsConnect With a Mentor Commented:
this is quite hardcoded, but it meets your stated requirements:

nawk 'NF == 0 { this = 0}
$1 == "daemon:" { this = 1 }
this == 1 && $1 == "password" { line = $0 ; sub($3, "*", line); print line; next }
        { print }' passwd > newpasswd

mv newpasswd passwd # trust me?

you could just use:
this == 1 && $1 == "password" {  $3 = "*" }
instead of that complex line, but that looses white space at the start of the line

I've also not seen a password file in that format, but who am I to judge! ;)
0
 
ozoConnect With a Mentor Commented:
sed "127,200s/pwdwarntime = .*/pwdwarntime = 14/"
0
 
madan1278Author Commented:
Thankyou very much.
I have another question for which I have increased the points further up by 75

cat passwd

root:
     password = gCwSI.DOGx7Jg
     some text here

daemon:
      password = jsfdsf.24343444
      some text here

madan:
        password = 1V5dvL8cAjTSk
        some text here

I need to change password = * only for the ID daemon. Is it possible.

Thanks
0
Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

 
ozoCommented:
I hope you're not posting real passwords in a public forum
0
 
madan1278Author Commented:
its just a test machine. shdnt be  a problem.
0
 
TintinCommented:
Why are you updating the passwords manually?
0
 
TintinCommented:
This is AIX's format.  Naturally, they do everything a little bit different.  I'd still like to know what madan1278 is *really* trying to do.  This sledgehammer approach can't be the best way.  It's always dangerous to manually manipulate passwords.
0
 
dtkernsCommented:
well, I wont claim any expertise in AIX, but I jumped on one:

# uname -a
AIX <edited to save my job> 3 4 000179194C00

# head -1 /etc/passwd
root:!:0:0::/:/bin/ksh

looks "normal" to me. maybe 3.4 is an old version, and IBM has "improved" it! lol
0
 
TintinCommented:
/etc/passwd is pretty much the same, but AIX uses a whole series of files under /etc/security to hold the shadow information, plus a whole lot more.
0
 
dtkernsCommented:
ah, thanks. ... thus your concern on manual edits, it's all making sense! :)
0
 
madan1278Author Commented:
LINE=`grep -nw "${user}:" /etc/security/passwd| awk -F: '{print $1}'`
PASS=`expr $LINE + 1`
cat /etc/security/passwd | sed "${PASS}s/password = .*/password = */" > /tmp/passwd
mv /tmp/passwd /etc/security/passwd

I follwed the above method. But the comments from dtkerns were useful. As said I will split my points to ozo & dtkerns

Thanks for all ur help.
0
All Courses

From novice to tech pro — start learning today.