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?


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

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

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.