首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在bash中,如何得到有加减号的总和?

在bash中,如何得到有加减号的总和?
EN

Stack Overflow用户
提问于 2019-07-18 07:02:15
回答 2查看 55关注 0票数 0

我有一个文件a.txt,从它的grep开始,一行以A开始,然后剪切3到7个索引字符,并试图对它们进行求和,但问题是它也让(-)签名我如何能够这样做。

我正在linux服务器上工作,尝试了许多脚本,但无法找到解决方案。

使用这个代码,它可以做加法,但是我也想按照符号进行减法。

代码语言:javascript
复制
grep "^A" a.txt |cut -c3-7 |awk '{SUM += $1} END {print SUM}'

原始文件包含:

代码语言:javascript
复制
A05000+
B05005-
C05845+
A05007-
A05648+

应评估如下:

5000+ 5007- 5648,导致4359

支出产出: 5641

产出: 15655

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-18 10:56:43

这里有一个awk变体。

代码语言:javascript
复制
awk '/^A/ {s+=substr($1,7,1) substr($1,2,5)} END {print s}' file
5641

+5000+-5007+5648=5641
票数 0
EN

Stack Overflow用户

发布于 2019-07-18 11:01:01

代码语言:javascript
复制
$ echo $(( $(grep '^A' file | cut -c 3-)0 ))
4359

基本上,我们这里要做的是使用bash内置的算术函数$(( expr ))来进行计算。我使用OP的命令并在末尾添加了一个额外的0来完成最后一个操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57088798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档