【发布时间】:2014-10-18 08:26:27
【问题描述】:
如何使用 unix 命令从 csv 文件中删除最后 7 行。
例如——
abc
bffkms
slds
行开始 1
行开始 2
第 3 行开始
行开始 4
行开始 5
第 6 行开始
第 7 行开始
我想从上面的文件中删除最后 7 行。请建议。
【问题讨论】:
如何使用 unix 命令从 csv 文件中删除最后 7 行。
例如——
abc
bffkms
slds
行开始 1
行开始 2
第 3 行开始
行开始 4
行开始 5
第 6 行开始
第 7 行开始
我想从上面的文件中删除最后 7 行。请建议。
【问题讨论】:
您可以使用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
【讨论】:
-n 标志的有效参数。
tacawk 组合。
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 之外的所有行。
【讨论】: