
En Debian puede usar zgrep para buscar en un archivo comprimido. La razón para crear un archivo gunzip es bastante fácil, los archivos como los registros de cambios son enormes y pueden comprimirse mucho. El problema es que con zgrep solo obtienes una línea específica y no hay información arriba ni abajo. para dar información contextual. sobre el cambio mismo. Un ejemplo para ilustrar -
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
Ahora, como puede verse, parece que mi chip se vio afectado por errores de RIDL, Fallout y Zombieload que parecen haber sido solucionados mediante un parche de software INTEL-SA-00223 que se menciona pero, como puede verse, está bastante incompleto.
La salida es usar zless y luego /RIDL o cualquiera de las otras palabras clave y luego ya sabes, pero quiero saber si hay alguna otra manera o si esa es la única solución. FWIW se enteró de que los errores se mitigaron el 14 de mayo de 2019, cuando Intel realizó parches de software que afectaron estos y otros problemas en esa fecha. Intenté usar 'cabeza' y 'cola' usando tuberías, pero ninguna de ellas resultó ser efectiva.
Respuesta1
zutiles(empaquetado en Debian) proporciona una versión más capaz zgrep
que admite todos los parámetros contextuales habituales:
$ 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
Puedes instalarlo con sudo apt install zutils
.
Respuesta2
Puedes usar zcat
y un normal grep
:
zcat changelog.gz | grep -C3 "Fallout"
-C3
indica grep
que proporcione 3 líneas de contexto (3 arriba, 3 abajo). Reduce esto si quieres menos contexto.
Puedes adaptar esto aún más usando -B<number>
y/o -A<number>
en su lugar (para "antes" y "después" respectivamente).
Respuesta3
También es sólo una solución alternativa, pero ¿lo intentaste?
gzip -cd changelog.gz | grep -C <num_lines> "Fallout"
¿ Para mostrar num_lines
el contexto antes y después del partido (usar -A <num_after>
y -B <num_before>
afinar)?