在压缩文件上使用sed

时间:2011-08-08 18:43:10

标签: linux shell sed

我已经编写了一个文件处理程序,现在需要从压缩文件中读取(.gz解压缩文件可能会大到2TB),

是否有像(zcat / cat)这样的压缩文件的sed等价物,或者有效地执行以下操作的最佳方法

    ONE=`zcat filename.gz| sed -n $counts`

$ counts:计数器读取(逐行)

上面的方法有效,但对于大文件来说速度很慢,因为我需要读取每一行并在某些字段上执行匹配。

由于

修改

虽然没有直接帮助,但这里有一组zcommands

http://www.cyberciti.biz/tips/decompress-and-expand-text-files.html

2 个答案:

答案 0 :(得分:4)

你可以拥有更快的速度(即使用未压缩的文件)或更多的可用空间(即使用压缩文件和你展示的管道)......抱歉。使用压缩文件总是会产生开销。

答案 1 :(得分:2)

如果您了解压缩格式的内部结构,您可以编写一个模式匹配器,它可以对压缩数据进行操作而无需完全解压缩,而是简单地从压缩数据中确定模式是否存在于一段给定的解压缩数据。

如果模式有任何复杂性,这听起来像是一个非常复杂的项目,因为你必须处理两个(或多个)单独解压缩输出组合可以满足模式的情况。 p>