shell如何实现A文件数字和B文件数字相加,然后替换B文件里的数字?




一、问题出处

请戳下面查看问题出处:

用shell脚本怎样实现A文件内数字和B文件数字相加,之和替换B文件里的数字?




二、问题详情

A.txt 中第二列数字与 B.txt 中第二列数字相加,行数一致的数字;
相加之和,替换 B.txt 第二列数字。

文件格式如下图:
在这里插入图片描述




三、我的答案

1、如果 filleB 只关注 " #kn vn" 的内容,其他注释类内容不需要保留的话,那实现起来就比较简单,一行命令搞定

paste fileA fileB | grep "#[0-9]" | awk '{print $1 " " $2+$4}' > filleB

2、如果需要完整保留 file2 注释的话,那就再加两行搞定

grep -n "#[0-9]" fileA | cut -d  ":" -f 1 > fileAtmp
paste fileA fileB | grep "#[0-9]" | awk '{print $1 " " $2+$4}'  > fileBtmp
paste  fileAtmp fileBtmp |  awk   '{cmd="sed -i \""$1"c "  $2 " " $3"\" fileB"; system(cmd)}'
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值