我有一个巨大的文件,有很多行。文件系统已满。
我希望你的帮助人员,建议我一个解决方案,以便我可以删除该文件中的所有行,但不能删除50000行。我想要一个可以从现有文件中删除行的解决方案,这样我就可以留下一些空间。
答案 0 :(得分: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, - lines = K
输出最后K行,而不是最后10行;或者使用-n + K来 以Kth开头的输出行
答案 1 :(得分:1)
使用sed
你可以说:
sed -e :a -e '$q;N;50001,$D;ba' filename
如果您想就地修改文件,请说:
sed -i -e :a -e '$q;N;50001,$D;ba' filename