
Debian では、zgrep を使用して gunzip されたアーカイブ ファイルを 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 またはその他のキーワードを使用することですが、他に方法があるか、それが唯一の回避策であるかを知りたいです。参考までに、2019 年 5 月 14 日に Intel がこれらの問題やその他のさまざまな問題に影響を与えるソフトウェア パッチを作成したため、バグが軽減されたことがわかりました。パイプを使用して「head」と「tail」を使用しようとしましたが、どちらも効果的ではありませんでした。
答え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
3 行のコンテキスト (上に 3 行、下に 3 行) を提供するように指示しますgrep
。コンテキストを少なくしたい場合は、この値を減らします。
-B<number>
代わりにand/or -A<number>
(それぞれ「前」と「後」)を使用して、これをさらにカスタマイズできます。
答え3
これも回避策に過ぎませんが、試してみましたか?
gzip -cd changelog.gz | grep -C <num_lines> "Fallout"
num_lines
一致の前後のコンテキストを表示するには(微調整するには-A <num_after>
と を使用)?-B <num_before>