: !/bin/sh carrier="AAPT" month="$1" infile="$2" outfile="$3" datasrcid="$4" #adjmonth=$month #adjmonth=`../../../adjmonth $month` #datadirpat=`echo "$adjmonth" | awk '{ print "??" substr($1,1,2) substr($1,5,2) }'` #echo "$0: datadirpat=[$datadirpat]" #infile=`ls ${datadirpat}/rcp*.dat` if [ "$outfile" = "" ]; then outfile="${carrier}_${month}.out" fi #echo "$0: infile=[$infile] outfile=[$outfile]" rm -f $outfile #DDVOICE SALES FORCE 0001546038300015380982AAPT PHONE SW0260330046 COROWA NATIONAL CALLS 0260417812 01/05/200308:59:27ALBURY +0008:31:09+000000000+0000035780414011 +000000000PEAK 04 00000000000000001 Y sed -e 's/ $//' "$infile" | \ awk -v "billmonth=$month" -v "carrier=$carrier" \ -v "datasrcid=$datasrcid" ' function trim(is) { #sub(/^\"/,"", is) #sub(/\"$/,"", is) while (sub(/^ /, "", is) != 0) is = is "" while (sub(/ $/, "", is) != 0) is = is "" return is } ##################################################### # main BEGIN { monthstr[1] = "Jan"; monthstr[2] = "Feb"; monthstr[3] = "Mar"; monthstr[4] = "Apr"; monthstr[5] = "May"; monthstr[6] = "Jun"; monthstr[7] = "Jul"; monthstr[8] = "Aug"; monthstr[9] = "Sep"; monthstr[10] = "Oct"; monthstr[11] = "Nov"; monthstr[12] = "Dec"; billmm = 0 + substr(billmonth,1,2) billyyyy = 0 + substr(billmonth,3,4) billperiod = monthstr[billmm] " " billyyyy } { gsub(/\r/, "") # remove CR gsub(/\032/, "") # remove FF record_flag = trim(substr($0,1,2)) record_type = trim(substr($0,3,10)) customer_ref = trim(substr($0,13,12)) group_number = trim(substr($0,25,11)) customer_number = trim(substr($0,36,11)) serviceprovider = trim(substr($0,47,10)) service_type = trim(substr($0,57,10)) sevivce_type_id = trim(substr($0,67,2)) node = trim(substr($0,69,30)) city_origin = trim(substr($0,99,13)) call_type = trim(substr($0,112,30)) dialled_number = trim(substr($0,142,30)) start_date = trim(substr($0,172,10)) start_time = trim(substr($0,182,8)) destination = trim(substr($0,190,20)) sign_duration = trim(substr($0,210,1)) duration = trim(substr($0,211,10)) sign_units = trim(substr($0,221,1)) units = trim(substr($0,222,9)) sign_charge = trim(substr($0,231,1)) charge = trim(substr($0,232,9)) rate_type = trim(substr($0,241,4)) revenue_call_type = trim(substr($0,245,3)) vantage_call_type = trim(substr($0,248,3)) vantage_called_number = trim(substr($0,251,30)) vantage_sup_code = trim(substr($0,281,11)) wholesale_rate_type = trim(substr($0,292,4)) sign_wholesale_charge = trim(substr($0,296,1)) wholesale_charge = trim(substr($0,297,9)) rate_desc = trim(substr($0,306,40)) bandstep = trim(substr($0,346,2)) handset_serno = trim(substr($0,348,20)) enhanced_calltype = trim(substr($0,368,20)) extension_leveling_bill_nbr = trim(substr($0,388,11)) call_seqno = trim(substr($0,399,6)) user_name = trim(substr($0,406,45)) gst_flag = trim(substr($0,450,1)) reserved_space = trim(substr($0,451,190)) # ------------ #servicenumber = customer_number servicenumber = substr(node,1,2) "." trim(substr(node,3)) rectype = "CDR" recclass = call_type # sdate dd/mm/ccyy btxt_dd = substr(start_date,1,2) btxt_mm = substr(start_date,4,2) btxt_cc = substr(start_date,7,2) btxt_yy = substr(start_date,9,2) sdate_str = sprintf("%02d/%02d/%02d%02d", btxt_dd, btxt_mm, btxt_cc, btxt_yy) # stime HH:MM:SS btxt_stime_str = substr(start_time,1,2) substr(start_time,4,2) substr(start_time,7,2) btxt_origin = city_origin btxt_destination = destination btxt_dialled = dialled_number btxt_rate = rate_type " " rate_desc # duration HHHH:MM:SS btxt_duration = duration durhh = 0 + substr(btxt_duration,1,4) durmm = 0 + substr(btxt_duration,6,2) durss = 0 + substr(btxt_duration,9,2) dursecs = (durhh * 60 * 60) + (durmm * 60) + durss if ( sign_duration == "-" ) dursecs = dursecs * -1 btxt_cost = charge / 100 costinclgst = 0.0 + btxt_cost if ( sign_charge == "-" ) costinclgst = costinclgst * -1 # ------------------------ # see whats in fields #print transactiontype | "sort -u >tt.uniq" #print btxt_dialled | "sort -u >btxt_dialled.uniq" #print substr(btxt_dialled,1,6) | "sort -u >btxt_dialled_6.uniq" #print btxt_origin | "sort -u >btxt_origin.uniq" #printf("%s: ", servicenumber) #printf("%s", btxt) #printf("%s", substr(btxt,1,68)) #printf(" BTXTCST:%s", btxt_cost) #printf(" EXCLGST:%s", exclgst) #printf(" INCLGST:%s", inclgst) #if ( btxt_cost != inclgst ) # printf(" COSTDIFF") #printf(" %0.2f", costinclgst) #printf("\n") # get dest onnet/offnet #cmd0 = sprintf("../getnet %s", btxt_dialled) #cmd0 | getline netdesttype #close cmd0 #printf("cmd0=[%s]\n", cmd0) #nettype = sprintf("MOBILEONNET_%s", netdesttype) if ( length(datasrcid) > 0 ) printf("%s|", datasrcid) printf("%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%d|%0.2f|\n", servicenumber, carrier, rectype, recclass, billperiod, sdate_str, btxt_stime_str, btxt_origin, btxt_destination, btxt_dialled, btxt_rate, dursecs, costinclgst) #printf("\n") } END { } ' >$outfile test -f tt.uniq && mv -f tt.uniq tt_$1.uniq test -f btxt_dialled.uniq && mv -f btxt_dialled.uniq btxt_dialled_$1.uniq test -f btxt_dialled_6.uniq && mv -f btxt_dialled_6.uniq btxt_dialled_6_$1.uniq test -f btxt_origin.uniq && mv -f btxt_origin.uniq btxt_origin_$1.uniq exit 0