Unix Z Kommandoer - Zcat, Zless, Zgrep, Zegrep og Zdiff Eksempler

I denne artikel skal vi se, hvordan du udfører normal filoperation på en komprimeret fil ved hjælp af de kraftfulde Linux Z-kommandoer. Nogle af disse z kommandoer uncompressed filen midlertidigt i / tmp-biblioteket for at udføre den angivne operation. Nogle af z kommandoer ukomprimeret for at udføre den angivne operation. Men under alle omstændigheder giver z kommandoer roen, da du ikke ønsker at bekymre dig om overhead til at komprimere den komprimerede fil til at udføre en operation.

Du kan gøre følgende normale filoperationer på den komprimerede fil.

1) Visning af den komprimerede fil med zcat.
2) Paging den komprimerede fil med zless / zmore.
3) Søgning inde i den komprimerede fil med zgrep / zegrep.
4) Sammenligning af fil ved hjælp af zdiff / zcmp

Eksempel 1: Se komprimeret fil og ukomprimeret med zcat

Komprimering af en fil ved hjælp af gzip opretter en komprimeret fil med * .gz-udvidelse og alle .zip-udvidelsesfiler Du kan se en komprimeret fil med zcat på følgende måde. Hvilket ville være det samme som den ukomprimerede filoperation 'cat filnavn'. zcat ukomprimerede filen og viser den i stdout.

[[Email protected] 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
[[Email protected] Desktop] $

[[Email protected] 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

Eksempel 2: Se en gzipped-fil, der ikke har .gz-suffixet

Du kan pakke ud en gzipped-fil, som ikke har gz-suffixet. Hvis du forsøger at pakke ud en gzipped-fil, der ikke har .gz-suffixet med "gunzip" eller "gzip -d" -kommandoen, står du over for følgende fejl.

[[Email protected] Desktop] $ gunzip sample_file
gzip: sample_file: ukendt suffix - ignoreret
[[Email protected] Desktop] $

Men denne zcat vil komprimere filen og viser indholdet som vist nedenfor.

[[Email protected] Desktop] $ cat> sample_file
Dette er en testfil, der bruges til gunzip og zcat test for denne artikel
dette er kraften i z-kommandoen

[[Email protected] Desktop] $ gzip sample_file

[[Email protected] Desktop] $ mv sample_file.gz sample_file

[[Email protected] Desktop] $ gzip -d sample_file
gzip: sample_file: ukendt suffix - ignoreret
[[Email protected] Desktop] $

[[Email protected] Desktop] $ zcat sample_file
Dette er en testfil, der bruges til gunzip og zcat test for denne artikel
dette er kraften i z-kommandoen
[[Email protected] Desktop] $

Eksempel 3: Vis filindholdet uden at bekymre dig om, om det er komprimeret eller ej

Når du ikke er sikker på, om en fil er komprimeret eller ej, kan du stadig se filen uden at bekymre dig om dens kompressionsstatus som vist nedenfor.

I dette eksempel, hvis input-filen er komprimeret, vil zcat vise indholdet ved at komprimere det. Hvis input-filen ikke komprimeres, viser zcat indholdet som det er.

[[Email protected] 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

Eksempel 4: Paging den komprimerede fil med zless / zmore

Du kan paginere en komprimeret fil med kommandoen zless eller zmore som vist nedenfor.

[[Email protected] Desktop] $ zmore passwd_file.gz
-> passwd_file.gz <-
root: x: 0: 0: root: / root: / bin / bash
bin: x: 1: 1: bin: / bin: / sbin / nologin
dæmon: 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

[[Email protected] Desktop] $ zless passwd_file.gz
tss: x: 59: 59: Konto brugt af buksepakken til sandbox tcsd daemon: / dev / null: / sbin / nologin
apache: x: 48: 48: Apache: / var / www: / sbin / nologin
mysql: x: xnumx: xnumx: mysql server: / var / lib / mysql: / bin / bash
systemfj: x: 501: 489 :: / opt / ibm / ibm-config-firejail / systemfj: / bin / bash
passwd_file.gz (END)

Eksempel 5: Søgning inde i den komprimerede fil med zgrep / zegrep

Du kan søge inde i en komprimeret fil med zgrep / zegrep som vist nedenfor. Dette ville være det samme som den ukomprimerede filoperation 'grep -i filnavn'. Alle indstillingerne til zgrep-kommandoen vil blive overført til grep, og filen vil blive fodret til grep-kommandoen. Det kan muligvis ukomprimere og føje filen til grep kommandoen, hvis det er nødvendigt.

1) Søg mønsteret i filen sammen med tilhørende linjenummer (r) ved hjælp af -n indstillingen i komprimeret fil.

[[Email protected] Desktop] $ zgrep -n mysql passwd_file.gz
39: mysql: x: 27: 27: MySQL-server: / var / lib / mysql: / bin / bash
[[Email protected] Desktop] $

2) Vis alle de linjer, der starter med angivet mønster ved hjælp af ^ symbo i komprimeret fil.

[[Email protected] Desktop] $ zgrep ^ root passwd_file.gz
root: x: 0: 0: root: / root: / bin / bash
[[Email protected] Desktop] $

3) Vis alle de linjer, der slutter med angivet mønster ved hjælp af $ symbol i komprimeret fil.

[[Email protected] 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: xnumx: xnumx: mysql server: / var / lib / mysql: / bin / bash
systemfj: x: 501: 489 :: / opt / ibm / ibm-config-firejail / systemfj: / bin / bash
[[Email protected] Desktop] $

4) søg alle de tomme eller tomme linjer i en fil ved hjælp af zgrep i komprimeret fil.

[[Email protected] Desktop] $ zgrep ^ $ passwd_file.gz
[[Email protected] Desktop] $

5) Vis N antal linjer før og efter mønster matching i komprimeret fil.

a) Vis fire linjer før patten matcher ved hjælp af -B valg i komprimeret fil.

[Email protected]: ~ # zgrep -B 4 "spil" / etc / passwd

b) Vis fire linjer efter mønster matching ved hjælp af -A mulighed i komprimeret fil.

[Email protected]: ~ # zgrep -A 4 "spil" / etc / passwd

c) Vis fire linjer omkring mønsteret matchende ved hjælp af -C-indstilling i komprimeret fil.

[Email protected]: ~ # zgrep -C 4 "spil" / etc / passwd

Eksempel 6: Flere søgning inde i den komprimerede fil med ordre

zegre kommando med flere regex mønstre for at reducere output meget mere, egrep kommando til at udføre en case-ufølsom søgning på flere regulære udtryk.

a) Søg i flere mønstre i den komprimerede fil med ordre

[[Email protected] Desktop] $ zegrep 'shah | root | apache' passwd_file.gz
root: x: 0: 0: root: / root: / bin / bash
operatør: 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
[[Email protected] Desktop] $

b) Søg i flere mønstre i filen sammen med tilhørende linjenummer (r) ved hjælp af -n indstillingen i komprimeret fil

[[Email protected] 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
[[Email protected] Desktop] $

c) Angiv filnavnet på de komprimerede filer, der indeholder flere mønster ved hjælp af -l valg.

[[Email protected] Desktop] $ zegrep -l 'shah | root | apache' * .gz
passwd_file1.gz
passwd_file2.gz
passwd_file3.gz
passwd_file.gz
[[Email protected] Desktop] $

Eksempel 6: Sammenligning af fil ved brug af zdiff / zcmp

Du kan sammenligne to komprimerede filer med zdiff / zcmp som vist nedenfor. Dette ville være det samme som den ukomprimerede filoperation 'diff file1 file2'.

[[Email protected] Desktop] $ cat> file1.txt
Dette er linje en
Dette er linje to

[[Email protected] Desktop] $ cat> file2.txt
Dette er linje 1
Dette er linje to

[[Email protected] Desktop] $ diff file1.txt fil2.txt
1c1
Dette er linje 1

[[Email protected] Desktop] $ gzip file1.txt file2.txt

[[Email protected] Desktop] $ zdiff file1.txt.gz file2.txt.gz
1c1
Dette er linje 1

Konklusion

I denne artikel lærer vi om unix Z-kommandokraft, z kommandoer uncompressed filen midlertidigt i / tmp-biblioteket for at udføre den angivne operation. Nogle af z kommandoer ukomprimeret for at udføre den angivne operation. Men under alle omstændigheder giver z kommandoer roen, da du ikke ønsker at bekymre dig om overhead til at komprimere den komprimerede fil til at udføre en operation.

Stillingen Unix Z Kommandoer - Zcat, Zless, Zgrep, Zegrep og Zdiff Eksempler dukkede først på LinOxide.

Giv en kommentar

Dette websted bruger Akismet til at reducere spam. Lær, hvordan dine kommentardata behandles.