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.