本系统给出的文件,会在某个情况下,会第四列出现2条相同数据,导致另一个系统处理异常。
接到系统警告之后,立即找出重复的数据,删除其中一条,删除后重新执行任务。
批量是以Java写的,没法直接在生产修改代码,需要等待投产修复,距离下次投产还有一段时间,需要做一些临时措施,不能每次出问题都来处理。
文件数据
FA20200523213532000000321,20200523,213532,u86gfd2ed02k7gw4ruj2y65thji976re,1,0
FA20200523223344000000453,20200523,223344,u86gfd2ed02k7gw4ruj2y65thji976re,1,1
第四列数据出现重复
#!/bin/sh
# 重复数据临时处理脚本
#临时文件目录
temp_path=/app/data/output/temp/
#最终文件输出目录
dest_path=/app/data/output/
#删除重复数据
for afile in `find $temp_path -name "voucher_return_*"`; do
# 找出重复的coupon_id
duplicate_file=${temp_file}/duplicate.txt
awk -F, ‘print $4‘ $afile | sort | uniq -d > $duplicate_file
# 删除匹配的第一条重复数据
for line in `cat $duplicate_file`; do
echo "duplicate:"$line
sed -i ‘0,/^.*‘"$line"‘.*$/{//d}‘ $afile
done
done
#移动文件到指定目录
for afile in `find $temp_file -name "voucher_*"`; do
mv $afile ${dest_path}
done
#清除临时文件
rm -f $duplicate_file
原文:https://www.cnblogs.com/nancarp/p/12944850.html