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 > Output
funktioniert nicht (da sie durch alle nicht vorhandenen $2
Elemente 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 FNR
hierfür verwenden. FNR
Bezieht 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