So verwenden Sie zgrep, um die Zeilennummer einer GZ-Datei herauszufinden oder Kontextinformationen bereitzustellen

So verwenden Sie zgrep, um die Zeilennummer einer GZ-Datei herauszufinden oder Kontextinformationen bereitzustellen

In Debian können Sie zgrep verwenden, um eine mit Gunzip komprimierte Archivdatei zu durchsuchen. Der Grund für die Erstellung einer Gunzip-Datei ist ganz einfach: Dateien wie Änderungsprotokolle sind sehr groß und können stark komprimiert werden. Das Problem ist, dass Sie mit zgrep nur eine bestimmte Zeile und keine Informationen darüber oder darunter erhalten, um Kontextinformationen zur Änderung selbst zu erhalten. Ein Beispiel zur Veranschaulichung:

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

Wie man nun sehen kann, scheint mein Chip von RIDL-, Fallout- und Zombieload-Fehlern betroffen zu sein, die anscheinend durch einen Software-Patch INTEL-SA-00223 behoben wurden, der erwähnt wird, aber wie man sehen kann, ist er ziemlich unvollständig.

Der Ausweg besteht darin, zless und dann /RIDL oder eines der anderen Schlüsselwörter zu verwenden und dann wissen Sie Bescheid, aber ich möchte wissen, ob es einen anderen Weg gibt oder ob dies die einzige Problemumgehung ist. FWIW hat erfahren, dass die Fehler am 14.05.2019 behoben wurden, als Intel an diesem Datum Software-Patches veröffentlichte, die diese und verschiedene andere Probleme betrafen. Ich habe versucht, „head“ und „tail“ mit Pipes zu verwenden, aber keines davon erwies sich als wirksam.

Antwort1

Zutils(verpackt in Debian) bietet eine leistungsfähigere Version, zgrepdie alle üblichen Kontextparameter unterstützt:

$ 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

Sie können es mit installieren sudo apt install zutils.

Antwort2

Sie können zcatFolgendes verwenden grep:

zcat changelog.gz | grep -C3 "Fallout"

-C3weist darauf hin grep, dass 3 Kontextzeilen bereitgestellt werden sollen (3 oben, 3 unten). Reduzieren Sie diesen Wert, wenn Sie weniger Kontext wünschen.

Sie können dies weiter anpassen, indem Sie stattdessen -B<number>und/oder verwenden -A<number>(für „vorher“ bzw. „nachher“).

Antwort3

Es ist auch nur ein Workaround, aber hast du versucht

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

zur Anzeige num_linesdes Kontexts vor und nach dem Spiel (Verwendung von -A <num_after>und -B <num_before>zur Feinabstimmung)?

verwandte Informationen