sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #100402
Storke langsomt bash script
Hej i kloge folk bag keyboardet,
Jeg har et script som skal parse en en fil hvor den skal tjekke om nogle
numre på nogle felter ligger indenfor nogle globale serier.
Filen t_pcl_ser indeholder ca 181.000 linier hvilket gør at det tager
sindsygt lang tid at parse den.
formatet er som følgende:
2080099992|92091661701|92091661800|N|N|Y|Y|N|DK||Y|
2080099997|09999700000|09999799999|N|N|Y|N|N|DK|6000|Y|
2080099997|92091293701|92091293800|N|N|Y|N|N|DK|6000|Y|
2080099999|09999900000|09999999999|N|N|Y|Y|N|DK|6000|Y|
2080099999|92092380001|92092380100|N|N|Y|Y|N|DK|6000|Y|
2080099999|92093628201|92093629200|N|N|Y|Y|N|DK|6000|Y|
2080099999|92094989701|92094990200|N|N|Y|Y|N|DK|6000|Y|
2080099999|92094992601|92094992700|N|N|Y|Y|N|DK|6000|Y|
2080099999|92094992701|92094992800|N|N|Y|Y|N|DK|6000|Y|
2080099999|92095071401|92095071500|N|N|Y|Y|N|DK|6000|Y|
----------------start cut af script----------------
startno1=92080000001
endno1=92081327500
startno2=92085000001
endno2=92085135000
startno3=92085135000
endno3=92085973000
cd ${masterdatadir}
for i in `cat t_pcl_ser`
do
testcustomerid=`echo $i | cut -d\| -f1`
teststartno=`echo $i | cut -d\| -f2`
testendno=`echo $i | cut -d\| -f3`
testactiveflag=`echo $i | cut -d\| -f4`
testprocflag001=`echo $i | cut -d\| -f5`
testprocflag002=`echo $i | cut -d\| -f6`
testprocflag003=`echo $i | cut -d\| -f7`
testprocflag004=`echo $i | cut -d\| -f8`
testcountrya2=`echo $i | cut -d\| -f9`
testzip=`echo $i | cut -d\| -f10`
testprocflag005=`echo $i | cut -d\| -f11`
if [ \( ${teststartno} -ge ${startno1} -a ${testendno} -le
${endno1} \) -o \( ${teststartno} -ge ${startno2} -a ${testendno} -le
${endno2} \) -o \( ${teststartno} -ge ${startno3} -a ${testendno} -le
${endno3} \) ]
then
echo
"${testcustomerid}|${teststartno}|${testendno}|${testactiveflag}|${testprocflag001}|Y|Y|${testprocflag004}|${testcountrya2}|${testzip}|${testprocflag005}|"
>> ${masterdatadir}/tmp/t_pcl_ser
else
echo ${i} >> ${masterdatadir}/tmp/t_pcl_ser
fi
done
----------------end cut af script----------------
Er der en anden måde at skrive det på så hastigheden bliver sat i vejret
eller skal det skrives i et andet sprog?
På forhånd tak
--
Med venlig hilsen
Martin Ahrentsen
Follow ups