Kā izmantot komandas zgrep un zipgrep, lai meklētu saspiestus failus

Šī rokasgrāmata parādīs, kā meklēt saspiestos failus a Linux datorā teksta virknei vai noteiktai izteiksmei.

Kā meklēt un filtrēt rezultātus, izmantojot komandu grep

Viena no jaudīgākajām Linux komandām ir grep, kas apzīmē Global Regular Expressions Print. Varat izmantot grep, lai meklētu paraugus faila saturā vai citas komandas izvadē.

Piemēram, izpildiet tālāk norādīto ps komanda lai skatītu datorā darbojošos procesu sarakstu:

ps -ef

Rezultāti ātri ritina ekrānā. Ja ir liels rezultātu skaits, informācijas skatīšana kļūst mulsinoša.

Linux ps komanda

Lai pārtrauktu lapas ritināšanu, izmantojiet vairāk komandu lai vienlaikus uzskaitītu vienu rezultātu lapu, kā norādīts tālāk:

ps -ef | vairāk. 

Lai gan iepriekš minētās komandas izvade ir labāka nekā iepriekšējā, jums joprojām ir jāpārskata rezultāti, lai atrastu vajadzīgo.

Komanda grep ļauj filtrēt rezultātus, pamatojoties uz kritērijiem, kurus tai nosūtāt. Piemēram, lai meklētu visus procesus, kuru UID ir iestatīts uz sakne, palaidiet šādu komandu:

ps -ef | grep sakne. 
Linux ps ar grep

Komanda grep darbojas arī failos. Iedomājieties, ka jums ir fails, kurā ir grāmatu nosaukumu saraksts, un vēlaties redzēt, vai fails satur Sarkangalvīte. Failu var meklēt šādi:

grep "Sarkangalvīte" grāmatu saraksts. 
Linux grep fails

The grep komanda ir spēcīgs, un ar to var izmantot daudzus noderīgus slēdžus.

Kā meklēt saspiestos failus, izmantojot komandu zgrep

Maz zināms, bet ļoti spēcīgs rīks ir zgrep. Komanda zgrep ļauj meklēt saspiestā faila saturu, vispirms neizvelkot saturu. Komandu zgrep var izmantot zip faili vai faili, kas saspiesti, izmantojot gzip komanda.

Kāda ir atšķirība? Zip failā var būt vairāki faili, savukārt failā, kas saspiests, izmantojot komandu gzip, ir tikai oriģinālais fails.

Lai meklētu tekstu failā, kas saspiests ar gzip, ievadiet šādu komandu:

zgrep izteiksme filetosearch. 

Piemēram, iedomājieties, ka grāmatu saraksts tika saspiests, izmantojot gzip. Jūs varat meklēt tekstu mazā sarkangalvīte saspiestajā failā, izmantojot šādu komandu:

zgrep "Sarkangalvīte" bookslist.gz. 
Linux zgrep

Kā daļu no komandas zgrep varat izmantot jebkuru izteiksmi un visus iestatījumus, kas pieejami ar komandu grep.

Kā meklēt saspiestos failus, izmantojot komandu zipgrep

Komanda zipgrep tiek izmantota, lai meklētu modeļus zip failā. Komanda zgrep labi darbojas ar failiem, kas saspiesti, izmantojot gzip, bet nedarbojas tik labi failiem, kas saspiesti, izmantojot zip utilītu. Varat izmantot zgrep, ja zip failā ir viens fails, bet lielākajā daļā zip failu ir vairāk nekā viens fails.

Piemēram, iedomājieties, ka jums ir fails ar nosaukumu grāmatas ar šādiem nosaukumiem:

  • Harijs Poters un Noslēpumu kambaris
  • Skaņas pieradināšana
  • No pelēm un vīriešiem
  • Ceļvedis stopniekiem galaktikā
  • Harijs Poters un Fēniksa ordenis

Tāpat iedomājieties, ka jums ir fails ar nosaukumu filmas ar šādiem nosaukumiem:

  • Matrica
  • Harijs Poters un Noslēpumu kambaris
  • Harijs Poters un Uguns biķeris
  • Zvaigžņu kari: jauna cerība

Tagad iedomājieties, ka šie divi faili ir saspiesti, izmantojot zip formātu failā ar nosaukumu media.zip. Varat izmantot komandu zipgrep, lai atrastu modeļus zip failā esošajos failos. Piemēram:

zipgrep raksta faila nosaukums. 

Lai atrastu visus notikumus Harijs Poters, izmantojiet šādu komandu:

zipgrep "Harijs Poters" media.zip. 

Izvade ir šāda:

grāmatas: Harijs Poters un noslēpumu kambaris
grāmatas: Harijs Poters un Fēniksa ordenis
filmas: Harijs Poters un noslēpumu kambaris
filmas: Harijs Poters un uguns biķeris.
Linux zipgrep

Tā kā ar zipgrep jūs varat izmantot jebkuru izteiksmi, ko varat izmantot ar grep, tas padara rīku ļoti ērtu jaudīgs, un tas padara zip failu meklēšanu vienkāršāku nekā atspiešanu, meklēšanu un pēc tam saspiešanu atkal.

Ja vēlaties meklēt tikai noteiktus failus zip failā, norādiet failus, kas jāmeklē zip failā, kā daļu no komandas, kā norādīts tālāk.

zipgrep "Harijs Poters" media.zip filmas. 

Izvade ir šāda:

filmas: Harijs Poters un noslēpumu kambaris
filmas: Harijs Poters un uguns biķeris.
Linux zipgrep meklēšana pēc faila

Ja vēlaties meklēt visos failos, izņemot vienu, izmantojiet šo komandu:

zipgrep "Harijs Poters" media.zip -x grāmatas. 

Tas rada tādu pašu izvadi kā iepriekš, jo tiek meklēti visi faili media.zip izņemot grāmatas.