zgrep を使用して行番号を検索したり、状況に応じた情報を提供する方法。 .gz ファイルの周り

zgrep を使用して行番号を検索したり、状況に応じた情報を提供する方法。 .gz ファイルの周り

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のバグの影響を受けていることがわかりました。

回避策は、zlessを使用してから/ RIDLまたは他のキーワードを使用することです。しかし、他の方法があるのか​​、それが唯一の解決策なのか疑問に思います。 FWIW、私たちはこれらのバグが2019年5月14日に軽減されたことを知っています。これは、Intelがこれらの問題やその他のさまざまな問題に影響を与えるソフトウェアパッチをリリースした日付です。 「頭」と「尾」を使うためにパイプを使ってみましたが、どちらも効率的であることがわかりませんでした。

答え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"

-C3grep3行のコンテキスト(上3行、下3行)を指定するように指示します。少ないコンテキストが必要な場合は、この値を減らしてください。

および/または(それぞれ「前」および「後」について)を-B<number>使用してさらにカスタマイズできます。-A<number>

答え3

これも解決策だけですが、試してみましたか?

gzip -cd changelog.gz | grep -C <num_lines> "Fallout"

num_lines試合前後の状況を表示しますか(使用-A <num_after>-B <num_before>微調整)?

関連情報