我们如何在unix中删除最后7行文件

时间:2014-08-25 08:12:56

标签: shell unix awk sed

如何使用unix命令从csv文件中删除最后7行。

例如 -

ABC
bffkms
的SLD
行开始1
行开始2
行开始3
行开始4
行开始5
行开始6
行开始7

我想从上面的文件中删除最后7行。请建议。

2 个答案:

答案 0 :(得分:9)

您可以使用head

head -n-7 file

来自手册页:

 -n, --lines=[-]K
              print the first K lines instead of the first 10;
              with the leading '-', print all but the last K lines of each file

像:

kent$ seq 10|head -n-7
1
2
3

答案 1 :(得分:1)

tac awk组合。

tac | awk  'NR>7' | tac

EKS:

seq 1 10 | tac | awk  'NR>7' | tac
1
2
3

另一个awk版本

awk 'FNR==NR {a++;next} FNR<a-7 ' file{,}

这两次读取文件{,},首先计算行数,然后打印除7行以外的所有行。