shell中使用awk判断文件中字段的值并进行替换的方法

stime=`date +%s`
#获取当前时间
echo  开始处理文件:  B08101007_${month_id}.txt.gz
#处理文件
zcat B08101007.txt.gz | awk -F '\x01' '{
#压缩文件查看方式使用zcat,分隔符为'\X01'
     if($2 == 822) {n2="V0511300"}
#判断第二个字段值是否是822,如果是替换成V0511300
     else if($2 == 833) {n2="V0511100"}
    else if($2 == 811) {n2="V0513100"}
    else if($2 == 832) {n2="V0511000"}
    else if($2 == 818) {n2="V0510300"}
    else {n2=""}
#其他输出为空
};{print $1"\x01"n2"\x01"$3"\x01"$4"\x01"$5"\x01"$6"\x01"$7"\x01"$8"\x01"$9"\x01"$10"\x01"$11"\x01"$12"\x01"$13"\x01"$14"\x01"$15}'>/mnt/sd03/data/sichuan/trans_area/B08101007.txt.new
#根据获取到的值重新输出到新文件
        etime=`date +%s`
s=`echo "scale=0; ($etime - $stime)%60" | bc`
m=`echo "scale=0; ($etime - $stime)/60%60" | bc`
h=`echo "scale=0; ($etime - $stime)/60/60" | bc`

echo  处理文件结束:  B08101007.txt.gz
echo `date +"%F %T"` end 耗时 $h 小时 $m 分钟 $s 秒


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值