计算批处理/ UNIX单个管道行中两个变量的总和

时间:2017-02-10 13:08:37

标签: windows unix awk cygwin

我想在batch / Cygwin中执行一些基本的数学计算,但StackOverflow question: Calculating the sum of two variables in a batch script中描述的解决方案正在使用set /A命令。

这不适合我,因为我想把所有东西放在管道中(UNIX风格,因此是Cygwin)。

我的想法如下:我有一个包含条目的文件列表。我想为所有提到的文件显示该条目背后的一行。

因此我在考虑采用以下方法:

找到找到条目的行:fgrep -n <entry> //这会显示行号和条目本身
仅显示行号:fgrep -n <entry> | awk -F ':' '{print $1}'
添加&#39; 1&#39;那个号码 获取第一笔条目:head -<new number>
只取最后一行:tail -1

但由于我不知道如何在数字中加1,我被困在这里。

我已经尝试过使用bc(基本计算器),但我的Cygwin安装似乎没有涵盖这一点。 由于我希望在一个管道行中包含所有内容,因此set /A的使用情况尚未发生。

有人有想法吗?
提前致谢

2 个答案:

答案 0 :(得分:0)

抱歉,抱歉,我刚才意识到awk能够进行一些基本计算,因此将{print $1}替换为{print $1 + 1}我的问题就解决了。

答案 1 :(得分:0)

Bash内置支持将变量声明为整数并对整数进行算术运算。 Bash有help命令,您应该同时安装man bashinfo bash