Hi,
I am trying to use variable output in awk to append a string to a word in a line. But that is not happening. Could you please help me on this.
The below is the code
#!/bin/ksh
set -x
src=/users/oracle/Temp
dst=/ora49/dpdump/$1
if [ "$#" -ne 3 ]; then
echo "Usage: Script_Name DB_Name Parfile EXP|IMP"
exit 1
fi
if [ ! -d "$dst" ]; then
echo "Source path: $dst doesn't exist"
exit 1
fi
echo $1
var1=$(echo "$1" | tr '[:upper:]' '[:lower:]')
var2=$(echo "$2" | tr '[:upper:]' '[:lower:]')
var3=$(echo "$3" | tr '[:upper:]' '[:lower:]')
echo $var1
ORACLE_SID="$var1"
ORAENV_ASK=NO
. oraenv 2>&1
ORAENV_ASK=YES
if [ `ps -ef | grep smon | grep $var1 | awk -F "_" '{print $3}'` == $var1 ]; then
if [ -f "$src/$var2" ]; then
echo " Parfile exists"
cp "$src/$var2" "$dst"
chmod 700 "$dst/$var2"
if [ "$var3" == "exp" ]; then
echo "Export"
if [[ `cat "$dst/$var2" | sed -e 's/[\t ]//g;/^$/d' | awk -F "=" 'tolower($1)=="userid"{print $2}'` == "appdbinstall" ]]; then
echo "appdbinstall exists"
vpd=`cat $src/encrypted.pwd`
echo "$vpd"
awk '/appdbinstall/ {$0=$0;for (i=1;i<NF;i++)t=t ;$0=$0 "/${vpd}"}1' "$dst/$var2" >> "$dst/${var1}_tmp.par"
nohup expdp parfile="$dst/${var1}_tmp.par" &
else
echo "appdbinstall not exists"
fi
elif [ "$var3" == "imp" ]; then
echo "Import"
else
echo "Pass 3rd parameter EXP|IMP"
fi
else
echo "Parfile does not exist"
fi
else
echo "Please pass value for DB name or DB is not running"
exit 1
fi
$ cat test_10062019.par
userid = appdbinstall
job_name = test_export
tables = dbadmin.gg_test
directory = EXPDP
dumpfile=test_export.dmp
logfile=test_export.log
What I am trying to achieve is if userid in parfile is appdbinstall, i need to attach the password from encrypted.pwd like , userid = appdbinstall/<password>.
awk '/appdbinstall/ {$0=$0;for (i=1;i<NF;i++)t=t ;$0=$0 "/${vpd}"}1' "$dst/$var2" >> "$dst/${var1}_tmp.par"
:- This is not working . Could you please suggest on this.
Thanks,
Mani