微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – 拆分大型日志文件而不保留原始文件(就地拆分)

我有一个226GB的日志文件,我想把它拆分成块以便更容易xzing.问题是我的可用空间中只剩下177GB的空间.

有没有办法将文件分成两半或分成N个块而不保留原始文件的附加副本?

$split myFile.txt
    $ls -halF
-rw-r--r--   1 user group 35 Dec 29 13:17 myFile.txt
-rw-r--r--   1 user group 8 Dec 29 13:18 xaa
-rw-r--r--   1 user group 3 Dec 29 13:18 xab
-rw-r--r--   1 user group 5 Dec 29 13:18 xac
-rw-r--r--   1 user group 10 Dec 29 13:18 xad
-rw-r--r--   1 user group 8 Dec 29 13:18 xae
-rw-r--r--   1 user group 1 Dec 29 13:18 xaf

我宁愿只剩下myFile.txt,只有分割文件.我很乐意坚持使用认行为并删除原始内容,但我没有足够的空间来完成它.

我不是sed或awk的专家,但我想也许有一种方法可以“移植到另一个文件中”可以通过其中一个实现的行为?

解决方法

可能有用的是将它的一部分直接流式传输到xz中 – 我猜你可以压缩一个足够好的日志文件,使原始压缩部分和压缩部分都适合你的空间.

>获取行数:

wc -l myFile.txt

>将其分成任意多个部分,例如:每个部件10k行.
>使用sed将所需的部分管道输入xz:

sed -n '1,10000p' myFile.txt | xz > outfile01.xz 
sed -n '10001,20000p' myFile.txt | xz > outfile02.xz

当然,这可以通过脚本来完成.

但老实说,就像EEAA所说的那样……

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐