I need help in awk please help immediatly.
This below function is taking lot of time
Please help me to fine tune it so that it runs faster.
The file count is around 3million records
# Process Body
processbody() {
\#set -x
while read line
do
ENTITY_TYPE=\`print "$line" | cut -d'|' -f2 | awk '\{gsub\(/^[ \\t]\+|[ \\t]\+$/,""\);print\}'\`
if [ $\{ENTITY_TYPE\} == "O" ]
then
ENTITY_TYPE="B"
else
ENTITY_TYPE="P"
fi
CUSTOMER_ID=\`print "$line" | cut -d'|' -f1 | awk '\{gsub\(/^[ \\t]\+|[ \\t]\+$/,""\);print\}'\`
\#Branch and Account Numbers should be left blank
BRANCH_NUMBER=
ACCOUNT_NUMBER=
ACCOUNT\_DATE_OPEN=\`print "$line" | cut -d'|' -f3 |sed 's/[^0-9]//g' | awk '\{gsub\(/^[ \\t]\+|[ \\t]\+$/,""\);print\}' | cut -c1-8\`
CORPORATE_NAME=\`print "$line" | cut -d'|' -f4 | awk '\{gsub\(/^[ \\t]\+|[ \\t]\+$/,""\);print\}'\`
LAST_NAME=\`print "$line" | cut -d'|' -f5 | awk '\{gsub\(/^[ \\t]\+|[ \\t]\+$/,""\);print\}'\`
FIRST_NAME=\`print "$line" | cut -d'|' -f6 | awk '\{gsub\(/^[ \\t]\+|[ \\t]\+$/,""\);print\}'\`
MIDDLE_NAME=\`print "$line" | cut -d'|' -f7 | awk '\{gsub\(/^[ \\t]\+|[ \\t]\+$/,""\);print\}'\`
NAME_SUFFIX=\`print "$line" | cut -d'|' -f8 | awk '\{gsub\(/^[ \\t]\+|[ \\t]\+$/,""\);print\}'\`
\# Extracting person gender information
PERSON_GENDER=\`print "$line" | cut -d'|' -f9 | awk '\{gsub\(/^[ \\t]\+|[ \\t]\+$/,""\);print\}'\`
\# If gender is anything other than M or F,replace it with blank
if [[ $\{PERSON_GENDER\} != "M" && $\{PERSON_GENDER\} != "F" ]]
then
PERSON_GENDER=
fi
BIRTH_DATE=\`print $line | cut -d'|' -f10 | sed 's/[^0-9]//g' | awk '\{gsub\(/^[ \\t]\+|[ \\t]\+$/,""\);print\}' | cut -c1-8\`
\#AGE should be left blank
AGE=
\# Extracting citizenship code information
CITIZEN\_COUNTRY_NAME=\`print $line | cut -d'|' -f11 | awk '\{gsub\(/^[ \\t]\+|[ \\t]\+$/,""\);print\}'\`
if [[ $\{CITIZEN\_COUNTRY_NAME\} == "US" || $\{CITIZEN\_COUNTRY_NAME\} == "USA" || $\{CITIZEN\_COUNTRY_NAME\} == "UNITED STATES" || $\{CITIZEN\_COUNTRY_NAME\} == "UNITED STATES OF AMERICA" ]]
then
CITIZENSHIP_CODE="USA"
FED_ID=\`print $line | cut -d'|' -f12 | sed -e 's/[^0-9]//g' | awk '\{gsub\(/^[ \\t]\+|[ \\t]\+$/,""\);print\}'\`
else
CITIZENSHIP_CODE=\`print $line | cut -d'|' -f11 | awk '\{gsub\(/^[ \\t]\+|[ \\t]\+$/,""\);print\}' | cut -c1-3\`
FED_ID=
fi
if [[ $\{ENTITY_TYPE\} == "P" ]]
then
FED\_ID_TYPE="S"
else
FED\_ID_TYPE="T"
fi
\#Extracting National ID information
ID\_INFORMATION_1=\`print $line | cut -d'|' -f13 | awk '\{gsub\(/^[ \\t]\+|[ \\t]\+$/,""\);print\}'\`
ID\_INFORMATION_2=\`print $line | cut -d'|' -f14 | awk '\{gsub\(/^[ \\t]\+|[ \\t]\+$/,""\);print\}'\`
if [[ ! -z $\{ID\_INFORMATION_1\} && $\{ID\_INFORMATION_1\} != "" ]]
then
NATIONAL\_ID=$\{ID\_INFORMATION_1\}
\# Remove all non numeric characters in NATIONAL_ID field
NATIONAL_ID=\`print $\{NATIONAL_ID\} | sed 's/[^0-9a-zA-Z]//g' | awk '\{gsub\(/^[ \\t]\+|[ \\t]\+$/,""\);print\}'\`
NATIONAL\_ID_TYPE="DL"
elif [[ ! -z $\{ID\_INFORMATION_2\} && $\{ID\_INFORMATION_2\} != "" ]]
then
NATIONAL\_ID=$\{ID\_INFORMATION_2\}
\# Remove all non numeric characters in NATIONAL_ID field
NATIONAL_ID=\`print $\{NATIONAL_ID\} | sed 's/[^0-9a-zA-Z]//g' | awk '\{gsub\(/^[ \\t]\+|[ \\t]\+$/,""\);print\}'\`
NATIONAL\_ID_TYPE="PP"
else
NATIONAL_ID=
NATIONAL\_ID_TYPE=
fi
\#Extracting street address information
ADDRESS_1=\`print $line | cut -d'|' -f15 | awk '\{gsub\(/^[ \\t]\+|[ \\t]\+$/,""\);print\}'\`
ADDRESS_2=\`print $line | cut -d'|' -f16 | awk '\{gsub\(/^[ \\t]\+|[ \\t]\+$/,""\);print\}'\`
STREET\_ADDRESS=$\{ADDRESS\_1\}$\{ADDRESS_2\}
STREET_ADDRESS=\`print $\{STREET_ADDRESS\} | cut -c1-60\`
\#Extracting city information
ADDRESS_3=\`print $line | cut -d'|' -f17 | awk '\{gsub\(/^[ \\t]\+|[ \\t]\+$/,""\);print\}'\`
CITY\_NAME=$\{ADDRESS_3\}
\#Extracting country information
COUNTRY=\`print $line | cut -d'|' -f20 | awk '\{gsub\(/^[ \\t]\+|[ \\t]\+$/,""\);print\}'\`
ADDRESS_4=\`print $line | cut -d'|' -f18 | awk '\{gsub\(/^[ \\t]\+|[ \\t]\+$/,""\);print\}'\`
COUNTRY_NAME=$\{COUNTRY\}
if [[ $\{COUNTRY_NAME\} == "US" || $\{COUNTRY_NAME\} == "USA" || $\{COUNTRY_NAME\} == "UNITED STATES" || $\{COUNTRY_NAME\} == "UNITED STATES OF AMERICA" ]]
then
COUNTRY_CODE="USA"
else
COUNTRY_CODE=\`print $\{COUNTRY\} | sed 's/ //g' | cut -c1-3\`
fi
\#POSTCODE=\`print $line | cut -d'|' -f19 | awk '\{gsub\(/^[ \\t]\+|[ \\t]\+$/,""\);print\}' |cut -c1-5\`
if [[ $\{COUNTRY_CODE\} == "USA" ]]
then
STATE\_CODE=$\{ADDRESS_4\}
POSTCODE=\`print $line | cut -d'|' -f19 | awk '\{gsub\(/^[ \\t]\+|[ \\t]\+$/,""\);print\}' |cut -c1-5\`
FOREIGN_PROVINCE=
FOREIGN\_POSTAL_CODE=
else
STATE_CODE=
POSTCODE=
FOREIGN\_PROVINCE=$\{ADDRESS_4\}
FOREIGN\_POSTAL_CODE=\`print $line | cut -d'|' -f19 | awk '\{gsub\(/^[ \\t]\+|[ \\t]\+$/,""\);print\}'\`
fi
PROCESSBODY="CDCI|"
PROCESSBODY="$\{PROCESSBODY\}$\{ENTITY_TYPE\}|"
PROCESSBODY="$\{PROCESSBODY\}$\{CUSTOMER_ID\}|"
PROCESSBODY="$\{PROCESSBODY\}$\{BRANCH_NUMBER\}|"
PROCESSBODY="$\{PROCESSBODY\}$\{ACCOUNT_NUMBER\}|"
PROCESSBODY="$\{PROCESSBODY\}$\{ACCOUNT\_DATE_OPEN\}|"
PROCESSBODY="$\{PROCESSBODY\}$\{CORPORATE_NAME\}|"
PROCESSBODY="$\{PROCESSBODY\}$\{LAST_NAME\}|"
PROCESSBODY="$\{PROCESSBODY\}$\{FIRST_NAME\}|"
PROCESSBODY="$\{PROCESSBODY\}$\{MIDDLE_NAME\}|"
PROCESSBODY="$\{PROCESSBODY\}$\{NAME_SUFFIX\}|"
PROCESSBODY="$\{PROCESSBODY\}$\{PERSON_GENDER\}|"
PROCESSBODY="$\{PROCESSBODY\}$\{BIRTH_DATE\}|"
PROCESSBODY="$\{PROCESSBODY\}$\{AGE\}|"
PROCESSBODY="$\{PROCESSBODY\}$\{CITIZENSHIP_CODE\}|"
PROCESSBODY="$\{PROCESSBODY\}$\{FED_ID\}|"
PROCESSBODY="$\{PROCESSBODY\}$\{FED\_ID_TYPE\}|"
PROCESSBODY="$\{PROCESSBODY\}$\{NATIONAL_ID\}|"
PROCESSBODY="$\{PROCESSBODY\}$\{NATIONAL\_ID_TYPE\}|"
PROCESSBODY="$\{PROCESSBODY\}$\{STREET_ADDRESS\}|"
PROCESSBODY="$\{PROCESSBODY\}$\{CITY_NAME\}|"
PROCESSBODY="$\{PROCESSBODY\}$\{STATE_CODE\}|"
PROCESSBODY="$\{PROCESSBODY\}$\{POSTCODE\}|"
PROCESSBODY="$\{PROCESSBODY\}$\{FOREIGN_PROVINCE\}|"
PROCESSBODY="$\{PROCESSBODY\}$\{FOREIGN\_POSTAL_CODE\}|"
PROCESSBODY="$\{PROCESSBODY\}$\{COUNTRY_NAME\}|"
PROCESSBODY="$\{PROCESSBODY\}$\{COUNTRY_CODE\}"
print "$\{PROCESSBODY\}" >> $\{INQ\_TEMP_FILE\}
done < $\{EDD_HOME\}/tmp/inquiry.txt
}