我有一个文件,foo.txt,包含以下行:

a
b
c

我想要一个简单的命令,导致foo.txt的内容为:

a
b

当前回答

你也可以试试这个方法:删除最后n行数的例子。

= 0;While [$a -lt 4];do sed -i '$ d' output.txt;A =expr $ A + 1;完成

删除文件(output.txt)的最后4行。

其他回答

红宝石(1.9+)

ruby -ne 'BEGIN{prv=""};print prv ; prv=$_;' file
echo -e '$d\nw\nq'| ed foo.txt

OK处理了大量的数据,输出是OK的,但有一个垃圾行。

如果我用管道输出脚本到:

| sed -i '$ d'我将得到以下错误,最终没有输出 Sed:没有输入文件

但是|头-n -1成功了!

awk "NR != `wc -l < text.file`" text.file &> newtext.file

这段代码可以达到目的。

在macOS上,head -n -1不起作用,但你可以使用这个命令:

cat file.txt | tail -r | tail -n +2 | tail -r

Tail -r将其输入中的行顺序颠倒 Tail -n +2输出输入中从第二行开始的所有行