shell脚本例子

本文介绍了一种利用awk命令处理两个不同日期的日志文件的方法,通过对比这些文件来找出变化的数据,并将结果输出到新的文件中。具体步骤包括读取前一天和前两天的日志文件,进行数据对比和差异分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.主要用awk实现两个文件的处理

number=0
if [ -f level_$number.`date +%Y%m%d` ]; then
awk -F"|" 'NR == FNR { a[$2] = $10 } /
NR > FNR { if (a[$2]=="") print $2"|"$2; /
else { a[$2] = $10 - a[$2]; print $2"|"a[$2]; } } '/
level_$number.`date +%Y%m%d -d "-1 day"` level_$number.`date +%Y%m%d`| sort > today_yesterday_$number.tmp


awk -F"|" 'NR == FNR { a[$2] = $10 } /
NR > FNR { if (a[$2]=="") print $2"|"$2; /
else { a[$2] = $10 - a[$2]; print $2"|"a[$2]; } } '/
level_$number.`date +%Y%m%d -d "-2 day"` level_$number.`date +%Y%m%d -d "-1 day"` | sort > yesterday_other_$number.
tmp


comm -23 today_yesterday_$number.tmp yesterday_other_$number.tmp > `date +%Y%m%d`_$number.tmp
awk -F"|" 'NR == FNR { a[$1] = $2 } /
NR > FNR { if (a[$2] != "") print $0;}' /
`date +%Y%m%d`_$number.tmp level_$number.`date +%Y%m%d` > result_$number

rm today_yesterday_$number.tmp
rm yesterday_other_$number.tmp
rm `date +%Y%m%d`_$number.tmp
fi

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值