Elemente einer Spalte durch eine Spalte mit einem Element aufteilen

Elemente einer Spalte durch eine Spalte mit einem Element aufteilen

Wie dividiert man die Elemente einer Spalte iterativ durch ein Ein-Element-Element in einer anderen Spalte?

Beispiel: Eingabe:

2     2
2.2
4
44

Erwartete Ausgabe:

1
1.1
2
22

Die Standarddivision awk '{print $1/$2}' Input > Outputfunktioniert nicht (da sie durch alle nicht vorhandenen $2Elemente iteriert)

Antwort1

Um den Divisor zu erhalten, müssen Sie nur den Wert in der ersten Zeile der zweiten Spalte berücksichtigen. Sie können FNRhierfür verwenden. FNRBezieht sich in awk auf die Datensatznummer (praktisch die Zeilennummer) in der aktuellen Datei. Speichern Sie den Divisor, indem Sie die erste Zeile der zweiten Spalte lesen und die Elemente in der ersten Spalte durch den gespeicherten Wert dividieren.

awk 'FNR==1 {d=$2} {print $1/d}' Input > Output

verwandte Informationen