-1

我有一个很大的文件,里面有很多行。文件系统已满。

我需要你们的帮助,建议我一个解决方案,以便我可以从该文件中删除所有行,但不能删除最后 50000 行。我想要可以从现有文件中删除行的解决方案,以便我可以留出一些空间。

4

2 回答 2

2

用于tail此:

tail -n 50000 file > new_file

甚至

tail -50000 file > new_file

要将输出保存在同一文件中,您可以执行以下操作:

tail -n 50000 file > new_file && mv new_file file

这会将输出保存在一个临时文件中,如果tail命令正确执行,该文件将替换原始文件。


来自man tail

tail - 输出文件的最后一部分

-n,--行=K

输出最后 K 行,而不是最后 10 行;或使用 -n +K 输出以第 K 个开头的行

于 2013-10-25T08:38:34.233 回答
1

使用sed你可以说:

sed -e :a -e '$q;N;50001,$D;ba' filename

如果要就地修改文件,请说:

sed -i -e :a -e '$q;N;50001,$D;ba' filename
于 2013-10-25T08:39:54.573 回答