如何创建算术数组运算循环?

如何创建算术数组运算循环?

一个=

3664938.434
3005450.144
2550000.085

我需要将“a”向量的所有行除以 1000 并保存输出。

答案1

你可以做:

while read num; do echo "scale=3; $num / 1000" | bc; done <file.txt

bash不支持浮点运算,所以我们需要使用bc

根据您的需要更改scale以适合小数点后的数字。

要将其保存在同一个文件中:

while read num; do echo "scale=3; $num / 1000" | bc; done <file.txt | tee file.txt

答案2

一种awk方法:

awk '{printf("%f\n",$1/1000)}'  file.txt

答案3

还有一种 Perl 方法(假设您将数字存储在一个文件中,每行一个):

perl -lne 'print $_/1000' file

如果您的值存储在 bash 数组中:

perl -lane 'print $_/1000 for @F'<<<"${a[@]}"

相关内容