Bash,如何将一个算术表达式应用于每一行?

时间:2018-02-04 16:36:00

标签: linux bash

我有两个脚本,A和B.

我想执行它们并分别读取两个值。 V和VALS。

V只是一个浮点数,比方说0.5

VALS具有以下格式:

1 10
2 20
3 60
4 45

等等。

我要做的是获取一个新变量,其中VALS(10,20,...)的第二列除以V。

据我所知,这可以通过混合使用xargs和cut来实现,但我并不熟悉这些工具。

#!/bin/bash

V=`./A`
VALS=`./B`
RESULT=#magic happens

以前数据的最终结果应为:

1 20
2 40
3 120
4 90

1 个答案:

答案 0 :(得分:2)

Bash的内置算术扩展仅适用于整数。您可以使用awk进行数据提取和浮点数。

V=`./A`
# No VALS needed
RESULT=($(./B | awk "{print \$2 / $V"}))

请注意\$2中的转义美元符号。