2012-08-08 138 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

相关问题