2012-08-08 15 views
16

Przetwarzam plik z awk i pomijam niektóre wiersze. Internet nie ma dobrej odpowiedzi.Jak pominąć ostatni wiersz w/awk?

Dotychczas jedynym informacji mam to, że można pominąć szereg wykonując:

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

LUB

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

Można pominąć pierwszą linię wprowadzając:

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

Jak pominąć ostatnią linię?

Odpowiedz

14

Jednym ze sposobów, za pomocą awk:

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

Albo lepiej sed:

sed '$d' file.txt 
+8

lub 'głowy -n-1 file.txt' – rwos

+2

@jwos wypróbował Twoją sugestię z głową, ale dostaję nielegalną liczbę linii ... – ovatsug25

+3

Dokładny formularz at of 'head''s options zależy od twojego systemu operacyjnego. Propozycja rwos działa w Linuksie, ale nie w FreeBSD, OpenBSD, OS/X. Prawdopodobnie nie działa również w Solarisie, HP/UX, itp. – ghoti

-3

Można spróbować:

awk 'END{print NR}' file 
+1

-1 to wydrukuje jak wiele linii w pliku wejściowym. całkowicie różni się od wymagań PO – Kent

Powiązane problemy