我的目录中有许多压缩文件(*.tar.gz)。文件名中包含创建日期。每个包含多个文件。我需要知道具有特定命名模式的文件中包含特定单词的行数。有没有办法在不解压缩和存储每个文件的情况下做到这一点?
假设我有以下文件。
myfile.2023-01-01.tar.gz
myfile.2023-01-02.tar.gz
.......................
myfile.2024-01-01.tar.gz
myfile.2024-05-01.tar.gz
每个文件在解压缩时将包含多个文件,如下所示。
access.log
access.123.log
config.log
config.456.log
config.3234.log
.....
我需要知道“config*”文件中包含单词“created”的行数。
不解压它们,不行。不存储它们,是的。您可以通过gunzip管道传输每个.gz文件来解压缩,并编写您自己的tar格式解析来计算所需文件中的行数。 tar 格式非常简单,每个文件前面都有一个 512 字节的标头,其中包含文件名和文件长度等内容。文件内容位于整数个 512 字节块中。 tar 文件以两个 512 字节的零块结尾。