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

前端之家收集整理的这篇文章主要介绍了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所说的那样……

猜你在找的Linux相关文章