Làm thế nào để nhân hai cột trong awk?


8

Tôi muốn nhân cột 1 với cột 2 (cho đến hết tệp) trong tệp đầu vào và nên xuất 1 cột và nhân 3 cột trong tệp riêng.

input.txt:

1 677679866
2 121867616
3 49413198
4 40415982

đầu ra.txt:

1 677679866
2 243735232
3 148239594
4 161663928

Có một câu hỏi ở đây?
mikeerv

Câu trả lời:



4

Đây là một awkgiải pháp:

$ awk '$0=$1" "$1*$2' input.txt 
1 677679866
2 243735232
3 148239594
4 161663928

Nhưng bạn có thể làm điều đó theo nhiều cách, đây là một perlgiải pháp:

$ perl -ape 's/$F[1]/$F[0]*$F[1]/e' input.txt
1 677679866
2 243735232
3 148239594
4 161663928

Bạn có thể thay đổi tại chỗ, bằng cách sử dụng -itùy chọn:

$ perl -i.bak -ape 's/$F[1]/$F[0]*$F[1]/e' input.txt
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.