a =
3664938.434
3005450.144
2550000.085
Я должен разделить все строки "a" вектора 1 000 и сохранить вывод.
Вы можете сделать:
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
awk
путь:
awk '{printf("%f\n",$1/1000)}' file.txt
И Perl путь (принимающий Вас сохранили Ваши числа в файле, один на строку):
perl -lne 'print $_/1000' file
Если Ваши значения хранятся в массиве удара:
perl -lane 'print $_/1000 for @F'<<<"${a[@]}"