2012-08-08 27 views
16

Bir dosyayı awk ile işliyorum ve bazı satırları atlamanız gerekiyor. İnternet, iyi bir cevabı yok.Son satırı w/awk'den nasıl geçersiniz?

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

Sen girerek ilk satırı atlayabilirsiniz

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

VEYA

:

Şimdiye kadar ben sadece bilgi size yaparak bir dizi atlayabilirsiniz olmasıdır

Son satırı nasıl atlıyorsunuz? awk kullanarak

cevap

14

bir yolu: sed ile

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

Ya da daha:

sed '$d' file.txt 
+8

veya 'kafa -n-1 file.txt' – rwos

+2

@jwos önerinizi w/kafa denedi ama yasadışı bir satır sayısı aldım ... – ovatsug25

+3

Tam biçim '' '' seçeneğinin seçenekleri işletim sisteminize bağlıdır. rwos'un önerisi Linux'ta çalışıyor, fakat FreeBSD, OpenBSD, OS/X'de değil. Muhtemelen Solaris, HP/UX, vb. De çalışmıyor. – ghoti

-3

Deneyebilirsin:

awk 'END{print NR}' file 
+1

-1 nasıl yazdıracağız giriş dosyasında birçok satır. OP'nin gereksiniminden tamamen farklı – Kent

İlgili konular