我有一个很大的文件,里面有很多行。文件系统已满。
我需要你们的帮助,建议我一个解决方案,以便我可以从该文件中删除所有行,但不能删除最后 50000 行。我想要可以从现有文件中删除行的解决方案,以便我可以留出一些空间。
用于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 个开头的行
使用sed
你可以说:
sed -e :a -e '$q;N;50001,$D;ba' filename
如果要就地修改文件,请说:
sed -i -e :a -e '$q;N;50001,$D;ba' filename