2012-08-08 128 views
16

我正在用awk處理文件,需要跳過一些行。互聯網沒有很好的答案。如何跳過最後一行w/awk?

到目前爲止,我所擁有的唯一信息是,你可以通過做跳過範圍:

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

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

OR

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

您可以通過輸入跳過第一線

你如何跳過最後一行?使用awk

回答

14

方式一:

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

或者更好地sed

sed '$d' file.txt 
+8

或'頭-n-1 file.txt' – rwos 2012-08-08 14:52:29

+2

@jwos嘗試了你的建議w /頭,但我得到一個非法的行數... – ovatsug25 2012-08-08 15:38:21

+3

確切的形式'head'的選項取決於你的操作系統。 rwos的建議適用於Linux,但不適用於FreeBSD,OpenBSD,OS/X。可能也不適用於Solaris,HP/UX等。 – ghoti 2012-08-09 11:36:29

-3

你可以試試:

awk 'END{print NR}' file 
+1

-1這將打印如何輸入文件中有很多行。與OP的要求完全不同 – Kent 2012-08-08 15:31:29