我有两个文本文件。 一个包含:
Feb,30000
March,40000
April,60000
另一个包含一个值:
0.134
我想在变量中输入数字,并希望将该数字除以每个 1st 文件的 2nd 列值即: 30000 , 40000 ,等。,并希望将其与第二个文件的值进行比较。< / p>
脚本怎么样?
答案 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)
需要其他一些工具,(即:bc
,awk
,calc
,等。),因为{ {1}}缺少浮点。
让我们调用第一个文件 f1 ,然后调用第二个文件 f2 。首先使用bash
和sed
来编写一些文本表达式:
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