如何对压缩的非标准文本文件的内容进行 grep

How to grep on the content of a zipped non-standard textfile

在我的 Windows-10 PC 上,我安装了 Ubuntu 应用程序。我想用 grep 查询一组 zip 文件的内容,但让我们从 1 个 zip 文件开始。我的压缩文件包含两个文件:故障转储和错误日志(文本文件),其中包含一些信息。我对该错误日志文件中的信息特别感兴趣:

<grep_inside> zipfile.zip "Access violation"

到目前为止,这是我最好的成绩:

unzip -c zipfile.zip error.log

这显示了错误日志文件,但它显示为 hexdump,这使得无法对其启动 grep。

根据不同网站的建议,我也尝试了以下命令:vimviewzcatzlesszgrep,所有由于不同原因无法工作。

进一步调查

这个问题不是 this post 的重复问题,我认为问题是由日志文件的编码引起的,正如您在其他基本 Linux 命令的以下结果中看到的那样,解压后报错日志文件:

emacs error.log
... caused an Access Violation (0xc0000005)

cat error.log
. . . c a u s e d   a n   A c c e s s   V i o l a t i o n   ( 0 x c 0 0 0 0 0 0 5 )

显然 error.log 文件没有被识别为简单的文本文件:

file error.log
error.log : Little-endian UTF-16 Unicode text, with very long lines, with CRLF line terminators

this post on grepping non-standard text files中找到了答案:

unzip -c zipfile.zip error.log | grep -a "A.c.c.e.s.s"

现在我有事情要开始了。

谢谢大家的配合。