LINUX

Comandos de Unix Z: ejemplos de Zcat, Zless, Zgrep, Zegrep y Zdiff

En este artículo, revisemos cómo realizar la operación normal de un archivo en archivos comprimidos usando los poderosos comandos de Linux Z. Algunos de estos comandos z descomprimieron el archivo temporalmente en el directorio / tmp para realizar la operación especificada. Algunos de los comandos z lo descomprimieron para realizar la operación especificada. Pero, en cualquier caso, los comandos z dan tranquilidad, ya que no quiere preocuparse por la sobrecarga de descomprimir el archivo comprimido para realizar una operación.

Puede realizar las siguientes operaciones de archivo normales en el archivo comprimido.

1) Ver el archivo comprimido con zcat.
2) Paginación del archivo comprimido con zless / zmore.
3) Buscando dentro del archivo comprimido con zgrep / zegrep.
4) Comparación de archivos usando zdiff / zcmp

Ejemplo 1: Ver archivo comprimido y sin comprimir con zcat

Al comprimir un archivo usando gzip se crea un archivo comprimido con la extensión * .gz y todo el archivo de extensión .zip Puede ver un archivo comprimido con zcat de la siguiente manera. Que sería lo mismo que la operación de archivo sin comprimir ‘cat filename’. zcat descomprimió el archivo y lo muestra en la salida estándar.

[shaha@oc8535558703 Desktop]$ zcat sample_file.zip
CDKNMS4 524 694 651 735 812 671 553
CDKNMS5 484 389 1899 516 1307 241 1416
CDKNMS7 340 86 54 1597 24 1545 241
CDMBMS1 361 936 517 274 300 916 531
[shaha@oc8535558703 Desktop]$
[shaha@oc8535558703 Desktop]$ zcat Compliance.gz
CDKNMS5 484 389 1899 516 1307 241 1416
CDKNMS7 340 86 54 1597 24 1545 241
CDMBMS1 361 936 517 274 300 916 531

Ejemplo 2: Ver un archivo comprimido con gzip que no tiene el sufijo .gz

Puede descomprimir un archivo comprimido con gzip que no tenga el sufijo gz. Si intenta descomprimir un archivo comprimido con gzip que no tiene el sufijo .gz con el comando «gunzip» o «gzip -d», se encontrará con el siguiente error.

[shaha@oc8535558703 Desktop]$ gunzip sample_file
gzip: sample_file: unknown suffix -- ignored
[shaha@oc8535558703 Desktop]$

Pero este zcat descomprimirá el archivo y mostrará el contenido como se muestra a continuación.

[shaha@oc8535558703 Desktop]$ cat > sample_file
This is a test file used for gunzip and zcat testing for this article
this is power of z command

[shaha@oc8535558703 Desktop]$ gzip sample_file

[shaha@oc8535558703 Desktop]$ mv sample_file.gz sample_file

[shaha@oc8535558703 Desktop]$ gzip -d sample_file
gzip: sample_file: unknown suffix -- ignored
[shaha@oc8535558703 Desktop]$

[shaha@oc8535558703 Desktop]$ zcat sample_file
This is a test file used for gunzip and zcat testing for this article
this is power of z command
[shaha@oc8535558703 Desktop]$

Ejemplo 3: muestra el contenido del archivo sin preocuparte de si está comprimido o no

Cuando no esté seguro de si un archivo está comprimido o no, aún puede ver el archivo sin preocuparse por su estado de compresión, como se muestra a continuación.

En este ejemplo, si el archivo de entrada está comprimido, zcat mostrará el contenido descomprimiéndolo. Si el archivo de entrada no está comprimido, zcat mostrará el contenido tal como está.

[shaha@oc8535558703 Desktop]$ zcat -f sample_file
CDKNMS4 524 694 651 735 812 671 553
CDKNMS5 484 389 1899 516 1307 241 1416
CDKNMS7 340 86 54 1597 24 1545 241

Ejemplo 4: paginación del archivo comprimido con zless / zmore

Puede paginar un archivo comprimido con el comando zless o el comando zmore como se muestra a continuación.

[shaha@oc8535558703 Desktop]$ zmore passwd_file.gz
------> passwd_file.gz <------
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[shaha@oc8535558703 Desktop]$ zless passwd_file.gz
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash
systemfj:x:501:489::/opt/ibm/ibm-config-firejail/systemfj:/bin/bash
passwd_file.gz (END)

Ejemplo 5: búsqueda dentro del archivo comprimido con zgrep / zegrep

Puede buscar dentro de un archivo comprimido con zgrep / zegrep como se muestra a continuación. Esto sería lo mismo que la operación de archivo sin comprimir ‘grep -i nombre de archivo’. Todas las opciones del comando zgrep se pasarán a grep y el archivo se enviará al comando grep. Puede descomprimir y alimentar el archivo al comando grep si es necesario.

1) Busque el patrón en el archivo junto con los números de línea asociados usando la opción -n en el archivo comprimido.

[shaha@oc8535558703 Desktop]$ zgrep -n mysql passwd_file.gz
39:mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash
[shaha@oc8535558703 Desktop]$

2) Muestra todas las líneas que comienzan con un patrón especificado usando ^ symbo en un archivo comprimido.

[shaha@oc8535558703 Desktop]$ zgrep ^root passwd_file.gz
root:x:0:0:root:/root:/bin/bash
[shaha@oc8535558703 Desktop]$

3) Muestra todas las líneas que terminan con un patrón especificado usando el símbolo $ en un archivo comprimido.

[shaha@oc8535558703 Desktop]$ zgrep bash$ passwd_file.gz
root:x:0:0:root:/root:/bin/bash
shaha:x:500:501:Shaha Alam:/home/shaha:/bin/bash
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash
systemfj:x:501:489::/opt/ibm/ibm-config-firejail/systemfj:/bin/bash
[shaha@oc8535558703 Desktop]$

4) busque todas las líneas vacías o en blanco de un archivo usando zgrep en un archivo comprimido.

[shaha@oc8535558703 Desktop]$ zgrep ^$ passwd_file.gz
[shaha@oc8535558703 Desktop]$

5) Muestra N número de líneas antes y después de la coincidencia de patrones en un archivo comprimido.

a) Muestre Cuatro líneas antes de la coincidencia de patrón usando la opción -B en un archivo comprimido.

root@Linux-shah:~# zgrep -B 4 "games" /etc/passwd

B) Mostrar cuatro líneas después de la coincidencia de patrones utilizando la opción -A en un archivo comprimido.

root@Linux-shah:~# zgrep -A 4 "games" /etc/passwd

C) Muestra Cuatro líneas alrededor de la coincidencia de patrones usando la opción -C en un archivo comprimido.

root@Linux-shah:~# zgrep -C 4 "games" /etc/passwd

Ejemplo 6: búsqueda múltiple dentro del archivo comprimido con zegrep

comando zegrep con múltiples patrones de expresiones regulares para reducir la salida mucho más, comando egrep para realizar una búsqueda que no distingue entre mayúsculas y minúsculas en múltiples expresiones regulares.

a) Busque el patrón múltiple en el archivo comprimido con zegrep

[shaha@oc8535558703 Desktop]$ zegrep 'shah|root|apache' passwd_file.gz
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
shaha:x:500:501:Shaha Alam:/home/shaha:/bin/bash
apache:x:48:48:Apache:/var/www:/sbin/nologin
[shaha@oc8535558703 Desktop]$

b) Busque el patrón múltiple en el archivo junto con los números de línea asociados usando la opción -n en el archivo comprimido

[shaha@oc8535558703 Desktop]$ zegrep -n 'shah|root|apache' passwd_file.gz
1:root:x:0:0:root:/root:/bin/bash
11:operator:x:11:0:operator:/root:/sbin/nologin
36:shaha:x:500:501:Shaha Alam:/home/shaha:/bin/bash
38:apache:x:48:48:Apache:/var/www:/sbin/nologin
[shaha@oc8535558703 Desktop]$

c) Enumere el nombre de archivo de aquellos archivos comprimidos que contienen múltiples patrones usando la opción -l.

[shaha@oc8535558703 Desktop]$ zegrep -l 'shah|root|apache' *.gz
passwd_file1.gz
passwd_file2.gz
passwd_file3.gz
passwd_file.gz
[shaha@oc8535558703 Desktop]$

Ejemplo 6: Comparación de archivo usando zdiff / zcmp

Puede comparar dos archivos comprimidos con zdiff / zcmp como se muestra a continuación. Esto sería lo mismo que la operación de archivo sin comprimir ‘diff file1 file2’.

[shaha@oc8535558703 Desktop]$ cat > file1.txt
This is line one
This is line two

[shaha@oc8535558703 Desktop]$ cat > file2.txt
This is line 1
This is line two

[shaha@oc8535558703 Desktop]$ diff file1.txt file2.txt
1c1
This is line 1

[shaha@oc8535558703 Desktop]$ gzip file1.txt file2.txt

[shaha@oc8535558703 Desktop]$ zdiff file1.txt.gz file2.txt.gz
1c1
This is line 1

Conclusión

En este artículo aprendemos sobre la potencia del comando de Unix Z, los comandos z descomprimieron el archivo temporalmente en el directorio / tmp para realizar la operación especificada. Algunos de los comandos z lo descomprimieron para realizar la operación especificada. Pero, en cualquier caso, los comandos z brindan tranquilidad, ya que no desea preocuparse por la sobrecarga de descomprimir el archivo comprimido para realizar una operación.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar