Hi All,
I have a big configuration log where I want to change string "aaa" to "bbb" under
auto-config-policy only right after "deny", "accept" and "hold" strings, nowhere else.
<<<< text >>>>>
auto-config-policy test
deny aaa precedence 4 profile aaa any
deny aaa precedence 6 domain aaa
accept aaa precedence 4 profile aaa any
hold aaa precedence 4 profile aaa any
auto-upgrade-policy test2
upgrade aaa precedence 4 profile default-aaa any
upgrade aaa precedence 6 domain default vlan 345
upgrade aaa precedence 4 profile default-aaa any
<<<<<text>>>>
To do that I have used the following sed script.
#!/bin/sh
OLD_STRING1="deny aaa precedence"
NEW_STRING1="deny bbb precedence"
OLD_STRING2="accept aaa precedence"
NEW_STRING2="accept bbb precedence"
OLD_STRING3="hold aaa precedence"
NEW_STRING3="hold bbb precedence"
CONFIG_FILE=/tmp/conf.log
fix()
{
if [ ! -e $CONFIG_FILE ] ; then
echo "file not present"
return 1
fi
if [ -r $CONFIG_FILE ] ; then
sed <$CONFIG_FILE -e "s/$OLD_STRING1/$NEW_STRING1/g" -e "s/$OLD_STRING2/$NEW_STRING2/g" -e "s/$OLD_STRING3/$NEW_STRING3/g" > /tmp/a-$$
mv /tmp/a-$$ $CONFIG_FILE
fi
}
fix
Can any body help me in correcting/updating the script. Only shell scripting needs to be used for this purpose.
Thanks.............