2017-02-10 34 views
0

我想要在批處理/ Cygwin中執行一些基本的數學計算,但StackOverflow question: Calculating the sum of two variables in a batch script中描述的解決方案正在使用set /A命令。計算批處理/ UNIX單管道中兩個變量的總和

這不適合我,因爲我想在管道中擁有一切(UNIX風格,因此Cygwin)。

我的想法如下:我有一個包含條目的文件列表。我想爲所有提到的文件顯示該條目背後的一行。

所以我在想下面的方法:

查找在條目中發現了線:fgrep -n <entry> //這一起顯示的行號與條目本身
只顯示行數:fgrep -n <entry> | awk -F ':' '{print $1}'
添加「1」這個數字
以條目的第一個量:head -<new number>
只取最後一行:tail -1

但正如我不知道如何將1添加到一個數字,我卡在這裏。

我已經嘗試過使用bc(基本計算器),但我的Cygwin安裝似乎沒有涵蓋。 由於我想在一個管道內部擁有一切,所以set /A的使用尚未出現。

有沒有人有想法?
在此先感謝

+1

您可以通過重新運行安裝程序並安裝它,將BC添加到您的cygwin安裝中。 – AlG

+0

cygwin軟件包名爲「bc」:https://cygwin.com/cgi-bin2/package-grep.cgi?grep=bin%2Fbc&arch=x86_64 –

+0

'expr'可以用來做一些算術 –

回答

0

對不起,對不起,我只是意識到awk能夠做一些基本的計算,所以由{print $1 + 1}更換{print $1}我的問題就解決了。

0

Bash內置支持聲明變量爲整數並在整數上進行算術運算。 Bash有一個help命令,你應該安裝man bashinfo bash