Wie multipliziere ich zwei Spalten in awk?


8

Ich möchte Spalte 1 mit Spalte 2 (bis zum Ende der Datei) in der Eingabedatei multiplizieren und sollte 1 Spalte ausgeben und 3 Spalten in einer separaten Datei multiplizieren.

input.txt:

1 677679866
2 121867616
3 49413198
4 40415982

output.txt:

1 677679866
2 243735232
3 148239594
4 161663928

Gibt es hier eine Frage?
Mikesserv

Antworten:



4

Hier ist eine awkLösung:

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

Aber Sie können es auf viele Arten tun, hier ist eine perlLösung:

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

Sie können Änderungen an Ort und Stelle vornehmen, indem Sie die -iOption verwenden:

$ perl -i.bak -ape 's/$F[1]/$F[0]*$F[1]/e' input.txt
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.