我有一个文件a.txt,从它的grep开始,一行以A开始,然后剪切3到7个索引字符,并试图对它们进行求和,但问题是它也让(-)签名我如何能够这样做。
我正在linux服务器上工作,尝试了许多脚本,但无法找到解决方案。
使用这个代码,它可以做加法,但是我也想按照符号进行减法。
grep "^A" a.txt |cut -c3-7 |awk '{SUM += $1} END {print SUM}'原始文件包含:
A05000+
B05005-
C05845+
A05007-
A05648+应评估如下:
5000+ 5007- 5648,导致4359。
支出产出: 5641
产出: 15655
发布于 2019-07-18 10:56:43
这里有一个awk变体。
awk '/^A/ {s+=substr($1,7,1) substr($1,2,5)} END {print s}' file
5641
+5000+-5007+5648=5641发布于 2019-07-18 11:01:01
$ echo $(( $(grep '^A' file | cut -c 3-)0 ))
4359基本上,我们这里要做的是使用bash内置的算术函数$(( expr ))来进行计算。我使用OP的命令并在末尾添加了一个额外的0来完成最后一个操作。
https://stackoverflow.com/questions/57088798
复制相似问题