web-dev-qa-db-ja.com

zgrepを使用して、行番号を確認したり、コンテキスト情報を提供したりする方法。 .gzファイルを囲む

Debianでは、zgrepを使用して、gunzippedアーカイブファイルから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-05-14に軽減され、Intelがその日にこれらおよびその他のさまざまな問題に影響を与えるソフトウェアパッチを作成したことを知りました。私はパイプを使用して「ヘッド」と「テール」を使用しようとしましたが、どちらも効果的であると証明されませんでした。

2
shirish

ZutilsDebianにパッケージされている )は、すべての通常のコンテキストパラメータをサポートする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を使用してインストールできます。

5
Stephen Kitt

これも回避策ですが、試しましたか

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

表示する num_lines前後のコンテキスト(-A <num_after>および-B <num_before>微調整する)?

5
AdminBee

zcatと通常のgrepを使用できます。

zcat changelog.gz | grep -C3 "Fallout"

-C3grepに3行のコンテキストを提供するように指示します(3行上、3行下)。コンテキストを減らしたい場合は、これを減らします。

代わりに-B<number>-A<number>を使用して、これをさらに調整できます(それぞれ「前」と「後」用)。

5
bxm