我需要比较文件'tmpcsv2'中的一组变量与'uniq_id'中的变量,我详细说明下面的文件。更容易的方法来比较变量
tmpcsv2 - >该文件被另一个脚本'script1'更新,'script1'的每次运行都会更新(不附加)'tmpcsv2'中的新变量。没有。变量可能是1,可以去钱柜200
eg:
2042344352
2470697747
2635527510
3667769962
uniq的-ID - >这是一个固定的变量(约100K中没有。)
(Business Name,Job ID,Job Size)
biz,1000036446,225210640
biz,100006309,6710840
biz,1000069211,2084019000
biz,1000118720,34194040
biz,1000150241,212322636
我使用“的'循环+'如果'比较它们如下所示,是否有这样做更容易或更快(影响更小)的方式?当我运行它时,需要很长时间才能输出结果。打印命令仅用于测试,稍后将被删除!
****Part of a bigger script****
amt=0
mjc=0
for jbid in `cat tmpcsv2` #Pick ID for match & calculation
do
printf "Checking ID $jbid\n" >> Acsv3.tmp
for bsid in `cat uniq_id` #Matching jobs & size calulation
do
ckid=`echo $bsid | cut -d "," -f2` #ckid is the ID to check
jbsiz=`echo $bsid | cut -d "," -f3` #size of the ID
if [ $jbid == $ckid ]
then
printf "Matched at $ckid\n" #Print on Match found
printf "Valid -> $jbid\n" >> Bcsv3.tmp
((mjc++)) #Increment Matched Job Count
amt=$((amt+jbsiz)) #Add size of matched jobs
break
else
printf "No Match at $cksid\n" #No matches
fi
done
printf "Check for ID $jbid done\n" >> Acsv3.tmp
printf "Matched $mjc jobs with combined size of $amt\n" >> Acsv3.tmp
done
****End of Comparision****
输入的确切格式是什么?注意你实际上并没有在输出中使用'jbid'变量,所以比较本身甚至不涉及该文件。 – ormaaj 2013-03-22 12:15:34
@ormaaj,我编辑了脚本以显示'jbid'的用法,我用它来比较这些变量。 – Marcos 2013-03-22 12:25:49