Using sed in a bash script to replace text in file -


on mac os x possible administrator unlock screensaver of administrator modifying file located at: /etc/pam.d/screensaver.

i need simple command change file (my script performing many other actions, , running bash script sudo). may have been changed, need test string , change if found.

in file string

account    required       pam_group.so no_warn deny group=admin,wheel ruser fail_safe

i need change to

account    sufficient       pam_group.so no_warn deny group=admin,wheel ruser fail_safe

ideally i'd report if change necessary, or had been made before script run.

i merely comment out or remove line, i'd prefer change detailed. tn details i'm attempting

http://support.apple.com/kb/ht5145?viewlocale=en_us

$ cat foo foo bar account    required       pam_group.so no_warn deny group=admin,wheel ruser fail_safe account    required       am_group.so no_warn deny group=admin,wheel ruser fail_safe accoi    required       pam_group.so no_warn deny group=admin,wheel ruser fail_ foo bar  $ awk '$1~/^account$/ && $3~/^pam_group.so/ && $2~/^required$/ { $2 = "sufficient" }1' foo foo bar account sufficient pam_group.so no_warn deny group=admin,wheel ruser fail_safe account    required       am_group.so no_warn deny group=admin,wheel ruser fail_safe accoi    required       pam_group.so no_warn deny group=admin,wheel ruser fail_ foo bar 

if first column ($1) account , second column ($2) required , third column ($3) starts string pam_group.so, replace required sufficient in second column.


Comments