Error ???
Hi all,
What did I do wrong ???
I have file record.dat
DLMQ|02/26/2006 01.00.00.000|||||Case CASE_ID=1111117777 STLITE ACCT_ID=1112227777 PREM_ID= PER_ID=1113337777
DLMQ|02/26/2006 01.10.00.000|||||Case CASE_ID=1111118888 SVCPLN ACCT_ID=1112228888 PREM_ID= PER_ID=1113338888
DLMQ|02/26/2006 01.00.00.000|||||PayPlan PP_ID=1111117777 ACCT_ID=STLITE
DLMQ|02/26/2006 01.10.00.000|||||PayPlan PP_ID=1111118888 ACCT_ID=SVCPLN
DLMQ|02/26/2006 01.00.00.000|||||FieldOrder FO_ID=1111117777 PREM_ID=STLITE
DLMQ|02/26/2006 01.10.00.000|||||FieldOrder FO_ID=1111118888 PREM_ID=SVCPLN
DLMQ|02/26/2006 01.00.00.000|||||Literature LIT_ID=1111117777 ACCT_ID=STLITE PER_ID=1112227777
DLMQ|02/26/2006 01.10.00.000|||||Literature LIT_ID=1111118888 ACCT_ID=SVCPLN PER_ID=1112228888
DLMQ|02/26/2006 01.00.00.000|||||FieldOrder FO_ID=1111117777 PREM_ID=STLITE
DLMQ|02/26/2006 01.10.00.000|||||FieldOrder FO_ID=1111118888 PREM_ID=SVCPLN
DLMQ|02/26/2006 01.00.00.000|||||FieldActivity FA_ID=1111117777 1113337777 FO_ID=STLITE SP_ID=1112227777
DLMQ|02/26/2006 01.10.00.000|||||FieldActivity FA_ID=1111118888 1113338888 FO_ID=SVCPLN SP_ID=1112228888
KLMQ|02/26/2006 00:08:07|||||StartStop 10031
LMWC|02/26/2006 00:07:28|||||FieldOrderHistory Modify 10021 20022 30023 40024
CRBM|02/26/2006 00:00:59.983|SAC||7700||
DLMQ|02/26/2006 01.05.00.000|||||CTI-CallTimer
BBS7|02/26/2006 0:02:06|||||OutageStatus SP_ID=293598472
CXT9|02/26/2006 1:09:51|||||OutageTroubleReport Cancel UnknownPremise PREM_ID=3417176263 SP_ID=5823949782 Overload Broken
CXT9|02/26/2006 2:36:31|||||OutageTroubleReport Create UnknownPremise PREM_ID=3417176279 SP_ID=3344936767 Overload Fix
CXT9|02/26/2006 2:36:42|||||OutageTroubleReport Cancel PREM_ID=3417176283 SP_ID=3344936767 Overload Broken
CXT9|02/26/2006 2:36:54|||||OutageTroubleReport Create PREM_ID=3417176287 SP_ID=3344936767 TrimTree Fix
CXT9|02/26/2006 2:37:58|||||OutageTroubleReport Cancel PREM_ID=3417176295 SP_ID=3344936767 Overload Broken
CXT9|02/26/2006 2:39:22|||||OutageTroubleReport Cancel PREM_ID=3417176303 SP_ID=3344936767 Overload Fix
DLLW|02/26/2006 0:00:05|||||OutageTroubleReport Create UnknownPremise PREM_ID=3417176211 SP_ID=3627854455 Fix Broken
Here is my code
#!/bin/ksh
. ./env_setup.sh
cd ${ROOT_PATH}/intermediate
for file in record*.dat; do
grep "|" $file |
sort -t"|" +0 -1 +1 -2 |
awk -F"|" -v root_path=${ROOT_PATH} '{
InCallFlag='N';
WriteFlag='N';
id=$1;
datetime=$2;
location=$3;
ani=$4;
ext=$5;
calllength=$6;
action=$7;
output_file= root_path "/intermediate/id.log";
##looking for $7 have word ID like PREM_ID, ACCT_ID ...
if (action ~ /ID/) {
type = substr(action,1,index(action," ")-1);
mainkey = substr(action,index(action," ")+1,index(substr(action,index(action," ")+1,20)," ")-1);
mainkey = substr(action,index(action," ")+1,index(substr(action,index(action," ")+1,20)," ")-1);
searchspec1 = type mainkey;
searchspec2 = type "Modify " mainkey;
searchspec3 = type "Access " mainkey;
}
printf "%s,%s,%s,%s,%s,%s,%s\n",id,datetime,callcntr,ani,type,mainkey,action >> output_file;
}'
done
I try to get the output like this
CXT9,02/26/2006 2:37:58,,,OutageTroubleReport,Cancel,OutageTroubleReport Cancel PREM_ID=3417176295 SP_ID=3344936767 Overload Brok
en
CXT9,02/26/2006 2:39:22,,,OutageTroubleReport,Cancel,OutageTroubleReport Cancel PREM_ID=3417176303 SP_ID=3344936767 Overload Fix
DLLW,02/26/2006 0:00:05,,,OutageTroubleReport,Create,OutageTroubleReport Create UnknownPremise PREM_ID=3417176211 SP_ID=362785445
5 Fix Broken
DLMQ,02/26/2006 01.00.00.000,,,Case,CASE_ID=1111117777,Case CASE_ID=1111117777 STLITE ACCT_ID=1112227777 PREM_ID= PER_ID=11133377
77
DLMQ,02/26/2006 01.00.00.000,,,FieldActivity,FA_ID=1111117777,FieldActivity FA_ID=1111117777 1113337777 FO_ID=STLITE SP_ID=111222
7777
DLMQ,02/26/2006 01.00.00.000,,,FieldOrder,FO_ID=1111117777,FieldOrder FO_ID=1111117777 PREM_ID=STLITE
DLMQ,02/26/2006 01.00.00.000,,,FieldOrder,FO_ID=1111117777,FieldOrder FO_ID=1111117777 PREM_ID=STLITE
DLMQ,02/26/2006 01.00.00.000,,,Literature,LIT_ID=1111117777,Literature LIT_ID=1111117777 ACCT_ID=STLITE PER_ID=1112227777
DLMQ,02/26/2006 01.00.00.000,,,PayPlan,PP_ID=1111117777,PayPlan PP_ID=1111117777 ACCT_ID=STLITE
DLMQ,02/26/2006 01.05.00.000,,,PayPlan,PP_ID=1111117777,CTI-CallTimer
DLMQ,02/26/2006 01.10.00.000,,,Case,CASE_ID=1111118888,Case CASE_ID=1111118888 SVCPLN ACCT_ID=1112228888 PREM_ID= PER_ID=11133388
88
But if I change code to if (action !~ /ID/) , I still have the same answer ... something is wrong ??? it does not know action ~ /ID/ or action !~ /ID/
anyone know why??
Thanks !