大压缩文件如何读取部分内容

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
Think1st
帖子: 45
注册时间: 2012-02-07 23:08

大压缩文件如何读取部分内容

#1

帖子 Think1st » 2012-09-08 15:54

这个问题不知道放在哪里问比较好。
现手头有一个很大的压缩日志文件,大概有20G,格式lzo,现在文件每行的格式是固定的,但是不知道是什么。
现在我想读出这个压缩文件的第一行,有没有什么方法?

我想的是:——>解压出一个文件——>head读出来(好像想不开啊。。)
有没有便捷的方式呢?求助 :em20
在这里,问题比答案更抢手。
头像
cuihao
帖子: 4793
注册时间: 2008-07-24 11:33
来自: 郑州
联系:

Re: 大压缩文件如何读取部分内容

#2

帖子 cuihao » 2012-09-09 9:06

我不太了解压缩算法,但有些压缩格式确实没办法部分读取。比如7z就是,只有全部读取才能获取部分内容……
求人不如求它仨: 天蓝的Wiki 屎黄的Wiki 绿
Site: CUIHAO.TK    Twitter: @cuihaoleo
Machine: Athlon64 X2 5200+ / 2x2GB DDR2-800 / GeForce GTS 450
AD: ~まだ見ぬ誰かの笑顔のために~
Dohw0Doh
帖子: 80
注册时间: 2012-08-23 19:37

Re: 大压缩文件如何读取部分内容

#3

帖子 Dohw0Doh » 2012-09-09 10:47

看了一下, 好像不行哎. 你的LZO从哪来的, 如果是服务器上的, 看能不能再生成一个小点儿的日志文件. 20G确实太大了.
Dohw0Doh
帖子: 80
注册时间: 2012-08-23 19:37

Re: 大压缩文件如何读取部分内容

#4

帖子 Dohw0Doh » 2012-09-09 10:48

gzip的可以单行操作的.
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 大压缩文件如何读取部分内容

#5

帖子 lilydjwg » 2012-09-09 11:22

cuihao 写了:我不太了解压缩算法,但有些压缩格式确实没办法部分读取。比如7z就是,只有全部读取才能获取部分内容……
7z 不是支持读取单个文件的吗?这不也算是部分读取吗?
头像
cuihao
帖子: 4793
注册时间: 2008-07-24 11:33
来自: 郑州
联系:

Re: 大压缩文件如何读取部分内容

#6

帖子 cuihao » 2012-09-09 11:36

lilydjwg 写了:
cuihao 写了:我不太了解压缩算法,但有些压缩格式确实没办法部分读取。比如7z就是,只有全部读取才能获取部分内容……
7z 不是支持读取单个文件的吗?这不也算是部分读取吗?
大概是我记错格式了吧,找了个rar试了试:

代码: 全选

cuihao@cuihao-arch shm $ time unrar x *.rar > /dev/null
unrar x *.rar > /dev/null  1.95s user 0.21s system 96% cpu 2.233 total
cuihao@cuihao-arch shm $ time unrar x *.rar n Lesson01.mp3 Lesson15.mp3 Lesson22.mp3 > /dev/null
unrar x *.rar n Lesson01.mp3 Lesson15.mp3 Lesson22.mp3 > /dev/null  1.76s user 0.10s system 97% cpu 1.898 total
有24个大小差不多的mp3文件和几个文本文件,单独解压3个文件的时间和全部解压的时间是差不多的……
求人不如求它仨: 天蓝的Wiki 屎黄的Wiki 绿
Site: CUIHAO.TK    Twitter: @cuihaoleo
Machine: Athlon64 X2 5200+ / 2x2GB DDR2-800 / GeForce GTS 450
AD: ~まだ見ぬ誰かの笑顔のために~
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 大压缩文件如何读取部分内容

#7

帖子 lilydjwg » 2012-09-09 12:24

cuihao 写了:
lilydjwg 写了:
cuihao 写了:我不太了解压缩算法,但有些压缩格式确实没办法部分读取。比如7z就是,只有全部读取才能获取部分内容……
7z 不是支持读取单个文件的吗?这不也算是部分读取吗?
大概是我记错格式了吧,找了个rar试了试:

代码: 全选

cuihao@cuihao-arch shm $ time unrar x *.rar > /dev/null
unrar x *.rar > /dev/null  1.95s user 0.21s system 96% cpu 2.233 total
cuihao@cuihao-arch shm $ time unrar x *.rar n Lesson01.mp3 Lesson15.mp3 Lesson22.mp3 > /dev/null
unrar x *.rar n Lesson01.mp3 Lesson15.mp3 Lesson22.mp3 > /dev/null  1.76s user 0.10s system 97% cpu 1.898 total
有24个大小差不多的mp3文件和几个文本文件,单独解压3个文件的时间和全部解压的时间是差不多的……

代码: 全选

10198 ~tmp
>>> mkdir test1 test2
10199 ~tmp
>>> time (cd test1 && exec unrar x ../t.rar)

UNRAR 4.20 freeware      Copyright (c) 1993-2012 Alexander Roshal


Extracting from ../t.rar

Extracting  ..................................                        OK 
Extracting  ..................................                        OK 
Extracting  ..................................                        OK 
Extracting  ..................................                        OK 
Extracting  ..................................                        OK 
All OK
( cd test1 && exec unrar x ../t.rar; )  0.01s user 0.01s system 21% cpu 0.063 total
10200 ~tmp
>>> time (cd test2 && exec unrar x ../t.rar ...........)

UNRAR 4.20 freeware      Copyright (c) 1993-2012 Alexander Roshal


Extracting from ../t.rar

Extracting  ..................................                        OK 
All OK
( cd test2 && exec unrar x ../t.rar ...........; )  0.01s user 0.00s system 19% cpu 0.033 total
随手找的文件,所以把文件名换成 . 了。第二次解压的是倒数第二个文件。文件都在 tmpfs 上。

你那个是固实压缩?或者是未压缩直接取出的所以速度只受 I/O 的影响?rar 默认是会将图片、音视频等已经压缩过的文件直接复制而不压缩的。
头像
cuihao
帖子: 4793
注册时间: 2008-07-24 11:33
来自: 郑州
联系:

Re: 大压缩文件如何读取部分内容

#8

帖子 cuihao » 2012-09-09 12:49

唔,我是在/dev/shm解压的,所以应该不是IO的问题。
压缩包是网上下的,怎么压就不知道了。

查了查“固实压缩”这个名词,貌似就是我想表达的无法单独取出的意思……
求人不如求它仨: 天蓝的Wiki 屎黄的Wiki 绿
Site: CUIHAO.TK    Twitter: @cuihaoleo
Machine: Athlon64 X2 5200+ / 2x2GB DDR2-800 / GeForce GTS 450
AD: ~まだ見ぬ誰かの笑顔のために~
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 大压缩文件如何读取部分内容

#9

帖子 lilydjwg » 2012-09-09 12:58

cuihao 写了:唔,我是在/dev/shm解压的,所以应该不是IO的问题。
压缩包是网上下的,怎么压就不知道了。

查了查“固实压缩”这个名词,貌似就是我想表达的无法单独取出的意思……
嗯,就是把许多文件当成一个大文件了,要单个取出就麻烦了,不然也不会不是默认。
回复