Shell 将变量除以文件1的第2列,将结果与文件2进行比较

Shell 将变量除以文件1的第2列,将结果与文件2进行比较,shell,Shell,我有两个文本文件。 其中包括: Feb,30000 March,40000 April,60000 另一个包含一个值: 0.134 我想在变量中输入数字,然后将该数字除以第一个文件的第二列值,即30000、40000等,然后将其与第二个文件的值进行比较 如何在脚本中使用它?由于bash没有浮点数计算功能,您可以使用bc或awk input=10000 value1=$(awk -F [,\ ] '{print $2}' file1) value2=$(awk '{print $1}' fil

我有两个文本文件。 其中包括:

Feb,30000
March,40000
April,60000
另一个包含一个值:

0.134
我想在变量中输入数字,然后将该数字除以第一个文件的第二列值,即30000、40000等,然后将其与第二个文件的值进行比较


如何在脚本中使用它?

由于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")};}'

由于
bash
缺少浮点,因此还需要一些其他工具(例如:
bc
awk
calc
等)

让我们分别调用第一个文件f1和第二个文件f2。首先使用
sed
bash
编写一些文本表达式:

x=4900 ; sed 's#.*,\(.*\)#'$x'/\1>'$(<f2)'#' f1 
从那里,将该表达式输入到
calc
(将进行除法,然后进行比较):


awk:BEGIN{if[“$input”/“$value1”>“$value2”]awk:^语法错误awk:BEGIN{if[“$input”/“$value1”>“$value2”]awk:^syntax error awk:cmd.line:4:else awk:cmd.line:4:^syntax error实际上它需要一个循环,这样它就可以重复进行除法。你能帮我一下吗。例如:当它接受输入时,是用星期一的值除法,并与第二个文件的值进行比较。它同样需要用星期二的v除法价值等等。我们怎么做?请协助。
4900/30000>0.134
4900/40000>0.134
4900/60000>0.134
x=4900 ; sed 's#.*,\(.*\)#'$x'/\1>'$(<f2)'#' f1 | calc -p
1
0
0