Làm cách nào để nhân một tệp dữ liệu .txt với một số không đổi?


9

Tôi có một tệp .txt với một cột. nó là khoảng 8000 số. Làm cách nào tôi có thể nhân cột dữ liệu này với 1000000?


3
Nếu các số là số nguyên đúng, thìsed 's/$/000000/' file.txt
glenn jackman

6
@glennjackman: Trông giống như một câu trả lời. : -]
David foerster

Nếu số không phải là số nguyên thì sao?
Ngày

Câu trả lời:


24

Bạn có thể sử dụng awklệnh:

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

16

Nếu các số trong tệp là số nguyên hoặc giá trị dấu phẩy động đơn giản, bạn có thể sử dụng numfmttiện ích --from-unit=để chỉ ra tỷ lệ mong muốn.

Ví dụ. được

$ cat file
1.23
5
3.45
17
6.78
23

sau đó

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

Bạn có thể thêm nhiều printfkiểu định dạng vào đầu ra, vd

$ 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

Ngoài ra, với sedbc:

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

hoặc (biến thể đánh bóng ngược)

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

Điều đó có nên bctrong lệnh cuối cùng hay là dcmột cái gì khác?
PerlDuck

3
@PerlDuck dclà một cái gì đó khác - xem ví dụ bc khác với dc như thế nào?
Steeldo

LOL, tôi đã không đọc đủ cẩn thận và nghĩ rằng đánh bóng như để làm cho một cái gì đó sáng bóng . Ty để giải thích.
PerlDuck

3
Ha, vậy "đánh bóng ngược" là "làm cho thứ gì đó kém sáng bóng hơn (nhiều bùn hơn)"? IMO, dc đáp ứng yêu cầu đó
glenn jackman

Xem liên kết này, Wikipedia: Ký hiệu đảo ngược của Ba Lan - Điều này trở nên phổ biến vào những năm 1970 với HP-35, máy tính khoa học cầm tay đầu tiên trên thế giới và loạt máy tính sau đây.
sudodus
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.