2012-08-08 7 views
16

Ich verarbeite eine Datei mit awk und muss einige Zeilen überspringen. Das Internet hat keine gute Antwort.Wie überspringst du die letzte Zeile mit awk?

Bisher ist die einzige Info, ich habe, ist, dass Sie einen Bereich, indem Sie überspringen können:

awk 'NR==6,NR==13 {print}' input.file 

ODER

awk 'NR <= 5 { next } NR > 13 {exit} { print}' input.file 

Sie können die erste Zeile überspringen durch die Eingabe:

awk 'NR < 1 { exit } { print}' db_berths.txt 

Wie überspringst du die letzte Zeile?

Antwort

14

Eine Möglichkeit, mit awk:

awk 'NR > 1 { print prev } { prev = $0 }' file.txt 

Oder besser mit sed:

sed '$d' file.txt 
+8

oder 'Kopf -n-1 file.txt' – rwos

+2

@jwos hat deinen Vorschlag mit Kopf versucht, aber ich bekomme eine unzulässige Zeilenzählung ... – ovatsug25

+3

Die genaue Form Die Optionen von "Kopf" hängen von Ihrem Betriebssystem ab. rwos 'Vorschlag funktioniert unter Linux, aber nicht unter FreeBSD, OpenBSD, OS/X. Wahrscheinlich funktioniert auch nicht unter Solaris, HP/UX usw. – ghoti

-3

Sie können versuchen:

awk 'END{print NR}' file 
+1

-1 wird dies wie gedruckt viele Zeilen in der Eingabedatei. völlig anders als die Anforderung von OP – Kent

Verwandte Themen