Bagaimana cara mengalikan file data .txt dengan angka konstan?

9

Saya punya file .txt dengan satu kolom. sekitar 8000 angka. Bagaimana saya bisa mengalikan kolom data ini dengan 1000000?

OE
sumber
3
Jika angka-angka tersebut benar-benar bilangan bulat, makased 's/$/000000/' file.txt
glenn jackman
6
@glennjackman: Itu terlihat seperti jawaban. : -]
David Foerster
Bagaimana jika jumlahnya bukan bilangan bulat?
copper.hat

Jawaban:

24

Anda dapat menggunakan awkperintah:

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

Jika angka dalam file adalah bilangan bulat atau nilai floating-point sederhana, Anda bisa menggunakan numfmtutilitas dengan --from-unit=untuk menunjukkan skala yang diinginkan.

Ex. diberikan

$ cat file
1.23
5
3.45
17
6.78
23

kemudian

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

Anda dapat menambahkan berbagai printfgaya-format ke output misalnya

$ 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

Atau, dengan seddan bc:

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

atau (varian semir terbalik)

sed 's/$/ 100000 * p/' file | dc
Steeldriver
sumber
Haruskah itu ada bcdi perintah terakhir atau dcada yang lain?
PerlDuck
3
@PerlDuck dcadalah sesuatu yang lain - lihat misalnya Bagaimana bc berbeda dari dc?
steeldriver
LOL, saya belum cukup membaca dan berpikir untuk memoles seperti membuat sesuatu mengkilap . Ty untuk menjelaskan.
PerlDuck
3
Ha, jadi "reverse polish" adalah "untuk membuat sesuatu yang kurang mengkilap (lebih berlumpur)"? IMO, dc memenuhi persyaratan itu
glenn jackman
Lihat tautan ini, Wikipedia: Notasi Polandia Terbalik - Ini menjadi populer di tahun 1970-an dengan HP-35, kalkulator ilmiah genggam pertama di dunia, dan serangkaian kalkulator berikut.
sudodus