将变量除以file1的第2列,将结果与file2进行比较

时间:2017-09-01 01:33:59

标签: shell

我有两个文本文件。 一个包含:

Feb,30000
March,40000
April,60000

另一个包含一个值:

0.134

我想在变量中输入数字,并希望将该数字除以每个 1st 文件的 2nd 列值 30000 40000 。,并希望将其与第二个文件的值进行比较。< / p>

脚本怎么样?

2 个答案:

答案 0 :(得分:1)

由于bash没有浮点数计算功能,您可以使用bc或awk。

input=10000
value1=$(awk -F [,\ ] '{print $2}' file1)
value2=$(awk '{print $1}' file2)
awk 'BEGIN {if("'$input'"/"'$value1'" > "'$value2'") {print("larger")} else {print("smaller")};}'

答案 1 :(得分:0)

需要其他一些工具,(bcawkcalc等。),因为{ {1}}缺少浮点。

让我们调用第一个文件 f1 ,然后调用第二个文件 f2 。首先使用bashsed来编写一些文本表达式:

bash

输出:

x=4900 ; sed 's#.*,\(.*\)#'$x'/\1>'$(<f2)'#' f1 

从那里,将表达式提供给4900/30000>0.134 4900/40000>0.134 4900/60000>0.134 (将除以,然后进行比较):

calc

输出,(x=4900 ; sed 's#.*,\(.*\)#'$x'/\1>'$(<f2)'#' f1 | calc -p &#34; 1&#34; 表示 true ,此处仅 4900/30000 0.163 ... 大于 0.134 ):

calc