Як помножити .txt файл даних на постійне число?


9

У мене є файл .txt з одним стовпцем. це приблизно 8000 номерів. Як я можу помножити цей стовпець даних на 1000000?


3
Якщо числа є цілими цілими числами, тоsed 's/$/000000/' file.txt
glenn jackman

6
@glennjackman: Це схоже на відповідь. : -]
Девід Фоерстер

Що робити, якщо числа не цілі числа?
мідь.ха

Відповіді:


24

Ви можете використовувати awkкоманду:

awk '{print $1*1000000}' file.txt

16

Якщо цифри у файлі мають цілі числа або прості значення з плаваючою комою, ви можете скористатися numfmtутилітою, --from-unit=щоб вказати бажане масштабування.

Вих. дано

$ cat file
1.23
5
3.45
17
6.78
23

тоді

$ numfmt --from-unit=100000 < file
123000.00
500000
345000.00
1700000
678000.00
2300000

Ви можете додати printfдо виходу різноманітні формати, наприклад,

$ numfmt --from-unit=100000  --format="%'12.2f" < file
  123,000.00
  500,000.00
  345,000.00
1,700,000.00
  678,000.00
2,300,000.00

Як варіант, за допомогою sedта bc:

sed 's/$/ * 100000/' file | bc

або (зворотний польський варіант)

sed 's/$/ 100000 * p/' file | dc

Це повинно бути bcв останній команді чи це dcщось інше?
PerlDuck

3
@PerlDuck dc- це щось інше - див. Наприклад, чим bc відрізняється від dc?
steeldriver

LOL, я не читав достатньо уважно і думав про польську як про те, щоб зробити щось блискучим . Тай для пояснення.
PerlDuck

3
Так, "зворотний лак" - це "зробити щось менш блискуче (більш каламутне)"? IMO, DC відповідає цій вимозі
glenn jackman

Перейдіть за цим посиланням у Вікіпедії: Зворотні польські позначення - це стало популярним у 70-х роках HP-35, першим у світі ручним науковим калькулятором та наступними серіями калькуляторів.
sudodus
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.