使用shell和awk批量处理二进制数据

   接到个任务,需要批量处理10万个HDCP key的二进制文件,需要把前320个字节的十六进制的和相加,并且用65536减去和,然后将所得结果写到二进制文件特定的位置(具体是0x140h和0x141h),高位在前,低位在后

如下图1红色部分所示。





                                                                                                         图1

  

  得到需求后,我在思考用什么方式来实现批量处理,感觉linux里面的shell正非常适合处理这种批量数据。由于需要累加这些二进制文件里面的数据

不太好直接处理,我就先把他们从二进制转化为ASCII的文本形式,然后把数据转化为十进制方便一些(要不然直接类似于FF+10这种会出问题,用awk

把这些数据切割好,然后累加

#change to ASCII Txt
   od -An -v -tx1 $filename  > $file_txt
   awk  'BEGIN{FS=" ";total = "0x"} {if(NR<=20){for(i =1;i<17;i++){c =   (to

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值