跑话单脚本

run2.sh

start=`date`
gawk '{v=FILENAME}!a[v]++1' ./source/*  >./source1.txt
end=`date`
echo ${start}"---combine source files!---"${end}

start=`date`
gawk '{v=FILENAME}!a[v]++1' ./target/*.*  >./target1.txt
end=`date`
echo ${start}"---combine target files!---"${end}

awk 'BEGIN{FS=","} {if (NR<2) print $0}' source1.txt > test1.txt  
awk 'BEGIN{FS=","} {if (NR<2) print $0}' target1.txt > test2.txt

s=`awk 'BEGIN{FS=","} {if (NR<2) print $0}' test1.txt`
t=`awk 'BEGIN{FS=","} {if (NR<2) print $0}' test2.txt`

fs1=`awk 'BEGIN{FS=","} {if (NR==1) print NF}' test1.txt`
fs2=`awk 'BEGIN{FS=","} {if (NR==1) print NF}' test2.txt`

if [ $fs1 -ne $fs2 ];then
printf "%s\n" "新老系统字段数不同"
else
printf "%s\n" "新老系统字段数相同"
fi

rm table.txt
rm fields.txt

j=1
for ((i=1;i<=$fs1;i++))
#for ((i=1;i<=20;i++))
do
s1=`awk 'BEGIN{ii="'$i'";FS=","} {print $ii}' test1.txt`
s2=`awk 'BEGIN{ii="'$i'";FS=","} {print $ii}' test2.txt`

if [ "$s1" = "" ] && [ "$s2" != "" ]
then
printf "%s\n" "新有老无" >> table.txt
elif [ "$s1" != "" ] && [ "$s2" = "" ]
then
printf "%s\n" "老有新无" >> table.txt
elif [ "$s1" = "" ] && [ "$s2" = "" ]
then
printf "%s\n" "老无新无" >> table.txt
else
printf "%s\n" "" >> table.txt
 if [ $j -eq 1 ]
 then
    printf "%s" 'linebuffer=''"'$i'"''$'$i >> fields.txt
    j=0
    # printf "%s" "~"$i
 else
    # printf "%s" "~"$i
    printf "%s" '"~'$i'"''$'$i >> fields.txt
 fi 
fi
done

rm source.awk
printf "%s\n" 'BEGIN{FS=''"'',"}' > source.awk
printf "%s\n" "{" >> source.awk
buf=`awk 'BEGIN{FS=","} {printf("%s\n",$0)}' fields.txt`
printf "%s\n" $buf >> source.awk
printf "%s\n" 'printf ''"''%-510s%c''\''n''"'',linebuffer,0' >> source.awk
printf "%s\n" 'gsub(/[[:blank:]]*/,''"''"'',linebuffer)' >> source.awk
printf "%s\n" "}" >> source.awk

tart=`date`
gawk -f source.awk source1.txt>source.txt
end=`date`
echo ${start}"---deal source fields!---"${end}

start=`date`
gawk -f source.awk target1.txt>target.txt
end=`date`
echo ${start}"---deal target fields!---"${end}

start=`date`
sort -n -k1 -t~ target.txt -o target.txt
end=`date`
echo ${start}"---sort target file---"${end}

start=`date`
./show_files source.txt target.txt t1
end=`date`
echo ${start}"---compare source target---"${end}

start=`date`
sort -n -k1 -t~ t1.source -o t1.source
end=`date`
echo ${start}"---sort error source files---"${end}


echo "it is over"

 

posted on 2014-10-30 14:58  weiguoyuan  阅读(180)  评论(0)    收藏  举报

导航