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.