跑话单脚本
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) 收藏 举报
浙公网安备 33010602011771号