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