Как я могу создать цикл для арифметической операции над массивом?

a =

3664938.434
3005450.144
2550000.085

Я должен разделить все строки "a" вектора 1 000 и сохранить вывод.

1
задан 21 October 2015 в 10:00

3 ответа

Вы можете сделать:

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
ответ дан 3 December 2019 в 07:00

awk путь:

awk '{printf("%f\n",$1/1000)}'  file.txt
2
ответ дан 3 December 2019 в 07:00

И Perl путь (принимающий Вас сохранили Ваши числа в файле, один на строку):

perl -lne 'print $_/1000' file

Если Ваши значения хранятся в массиве удара:

perl -lane 'print $_/1000 for @F'<<<"${a[@]}"
0
ответ дан 3 December 2019 в 07:00

Другие вопросы по тегам:

Похожие вопросы: