-1

我想使用 echo|bc 命令来计算大量的计算。例如:

echo "scale=8; sqrt($NUM)" | bc -l

计算 NUM 的平方根到 8 位十进制数字的精度。

现在假设我有一个numbers.txt包含大量数字的文件,我想计算所有数字的平方根。

我尝试使用

grep -ow "^[0-9]*$" numbers.txt | xargs -I '{}' echo "scale=8; sqrt({})" | bc -l

grep -ow "^[0-9]*$" numbers.txt | xargs -I '{}' (echo "scale=8; sqrt({})" | bc -l)

grep -ow "^[0-9]*$" numbers.txt | xargs -I '{}' $(echo "scale=8; sqrt({})" | bc -l)

read num numbers.txt | echo "scale=8; sqrt($num)" | bc -l

以及这些的更多变体,但找不到使它起作用的方法。有任何想法吗?

4

2 回答 2

0

你的第一行工作正常:

grep -ow "^[0-9]*$" numbers.txt | xargs -I {} echo "scale=8; sqrt({})" | bc -l
于 2018-12-03T20:59:55.083 回答
0

我之前的赛勒斯是对的。我的问题是我在每一行中都有更多数据,而我使用的 grep 并没有“grep”它。(grep "^[0-9]*$"查找的行仅包含数字,因为 th^$符号。

更改grep为后egrep,该行:

egrep -ow "[0-9]+" numbers.txt | xargs -I {} echo "scale=8; sqrt({})" | bc -l

完全解决了我的问题。

于 2018-12-04T06:47:50.533 回答