在 Debian 中,您可以使用 zgrep 来 grep 压缩的存档文件。制作gunzip 文件的原因很简单,诸如变更日志之类的文件很大,可以高度压缩。问题是使用 zgrep 你只能得到特定的行,而没有上面或下面的信息。提供上下文信息。关于改变本身。举个例子来说明——
usr/share/doc/intel-microcode$ zgrep Fallout changelog.gz
* Implements MDS mitigation (RIDL, Fallout, Zombieload), INTEL-SA-00223
* Implements MDS mitigation (RIDL, Fallout, Zombieload), INTEL-SA-00223
现在可以看出,我的芯片似乎受到了 RIDL、Fallout 和 Zombieload 错误的影响,这些错误似乎已通过提到的软件补丁 INTEL-SA-00223 修复,但可以看出它相当不完整。
出路是使用 zless 然后 /RIDL 或任何其他关键字,然后您知道但我想知道是否还有其他方法或者这是唯一的解决方法? FWIW 确实了解到这些错误已于 2019 年 5 月 14 日得到缓解,英特尔在该日期发布了影响这些问题和各种其他问题的软件补丁。我确实尝试使用管道来使用“头”和“尾”,但它们都没有被证明是有效的。
答案1
祖蒂尔斯(打包在 Debian 中)提供了一个功能更强大的版本zgrep
,支持所有常用的上下文参数:
$ zgrep -C3 Fallout /usr/share/doc/intel-microcode/changelog.Debian.gz
* New upstream microcode datafile 20190618
+ SECURITY UPDATE
Implements MDS mitigation (RIDL, Fallout, Zombieload), INTEL-SA-00223
CVE-2018-12126, CVE-2018-12127, CVE-2018-12130, CVE-2019-11091
for Sandybridge server and Core-X processors
+ Updated Microcodes:
--
* New upstream microcode datafile 20190514
+ SECURITY UPDATE
Implements MDS mitigation (RIDL, Fallout, Zombieload), INTEL-SA-00223
CVE-2018-12126, CVE-2018-12127, CVE-2018-12130, CVE-2019-11091
+ New Microcodes:
sig 0x00030678, pf_mask 0x02, 2019-04-22, rev 0x0838, size 52224
您可以使用 来安装它sudo apt install zutils
。
答案2
您可以使用zcat
普通的grep
:
zcat changelog.gz | grep -C3 "Fallout"
-C3
告诉grep
我们提供 3 行上下文(上面 3 行,下面 3 行)。如果您想要更少的上下文,请减少此值。
您可以通过使用-B<number>
and/or来进一步定制它-A<number>
(分别用于“之前”和“之后”。)
答案3
这也只是一种解决方法,但你尝试过吗
gzip -cd changelog.gz | grep -C <num_lines> "Fallout"
显示num_lines
比赛前后的上下文(使用-A <num_after>
和-B <num_before>
进行微调)?