Sed命令返回表达式错误

时间:2014-06-02 09:54:31

标签: linux sed

当我执行下面的sed命令时,它返回表达式错误,如下所示。

user% sed -e '$-3,$d' sample.csv
sed: -e expression #1, char 2: unknown command: `-'

我想要做的是从指定文件中删除最后4行。 我发现一些网站介绍了上述方法,但它不适用于我的Mac OSX 10.9和CentOS环境。 我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

如果要删除文件中的最后四行,请尝试以下命令

tac file.csv | sed '1,4d' | tac > newfile.csv

答案 1 :(得分:1)

这可能适合你(GNU sed):

sed '1{N;N};N;$d;P;D' file

或更具适应性:

sed ':a;$d;N;s/\n/&/4;Ta;P;D' file