Fehlender Header in awk Ausgang
Frage
Eingang:
position fst
1 0.6
2 0.8
3 0.9
4 0.3
5 1
Das gibt mir einen Kopfball:
awk '{if ($2>=0.7) print $1}' input > output
Aber das nicht:
awk '{if ($2<0.7) print $1}' input > output
Woher?
Lösung
Wenn Sie immer den Header drucken möchten, verwenden Sie:
awk '{if (NR>1) {if ($2>=0.7) print $1} else print $1}'
awk '{if (NR>1) {if ($2<0.7) print $1} else print $1}'
Andere Tipps
In Ihrem zweiten Beispiel, $2<0.7
wird interpretiert als "fst"<"0.7"
welches ist FALSE
Du kannst hinzufügen NR==1 ||
Immer die erste Zeile drucken:
$ awk 'NR==1 || $2<0.7{print $1}' input
position
1
4
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow