head命令跳过MAC OSX上的最后几行文件

Moh*_*mad 10 shell terminal command-line osx-lion

我想输出文件的所有行,但跳过最后4,在终端上.

根据UNIX手册页,以下内容可能是一种解决方案.

head -n -4 main.m

MAN页面:

-n, - lines = [ - ] N打印前N行而不是前10行; 使用前导' - ',打印除了每个文件的最后N行之外的所有行

我在这里阅读了手册页.http://unixhelp.ed.ac.uk/CGI/man-cgi?head

但在MAC OSx上我得到以下错误.

头:非法行数 - -4

还有什么办法可以实现这一目标?

Nob*_*obu 9

GNU版head支持负数.

brew install coreutils
ghead -n -4 main.m
Run Code Online (Sandbox Code Playgroud)


pyn*_*exj 4

使用awk例如:

$ cat file
line 1
line 2
line 3
line 4
line 5
line 6
$ awk 'n>=4 { print a[n%4] } { a[n%4]=$0; n=n+1 }' file
line 1
line 2
$
Run Code Online (Sandbox Code Playgroud)

它可以简化为,awk 'n>=4 { print a[n%4] } { a[n++%4]=$0 }'但我不确定是否所有 awk 实现都支持它。