Linux-单线:打印除最后3条以外的所有行?

我想模拟GNU的head -n -3,它打印除最后3行之外的所有行,因为FreeBSD上的head没有此功能.所以我在想类似的东西

seq 1 10 | perl -ne ...

在这里,我使用了10行,但是它可以是大于3的任何数字.

可以在Perash或BASH的FreeBSD上以其他方式完成吗?

一个超原始的解决方案是

seq 1 10 | sed '$d' | sed '$d' | sed '$d'
最佳答案
这适用于管道以及输入文件:

seq 1 10 | perl -e'@x=<>;print@x[0..$#x-3]'

转载注明原文:Linux-单线:打印除最后3条以外的所有行? - 代码日志