Tässä oppaassa näytetään, kuinka etsiä pakattuja tiedostoja tekstiryhmälle tai tietylle lausekkeelle.
Miten hakea ja suodattaa tulokset käyttämällä Grep-komentoa
Yksi tehokkaimmista Linux-komennoista on grep, joka tarkoittaa "Global Regular Expressions Print".
Voit käyttää grep-ohjelmaa haun etsimiseen tiedoston sisällön tai toisen komennon tuotosta.
Esimerkkinä, jos suoritat seuraavan ps-komennon , näet luettelon tietokoneesi käynnissä olevista prosesseista.
ps -ef
Tulokset siirtyvät nopeasti näyttöön ja jos yleensä on paljon tuloksia. Tämä tekee tietojen tarkastelemisesta erityisen kivuliaita.
Voit tietysti käyttää useampaa komentoa listalla yhden tuloksellisen sivun kerrallaan seuraavasti:
ps -ef | lisää
Vaikka yllä olevan komennon tuotos on parempi kuin edellinen, sinun on silti vältettävä tuloksia löytääksesi mitä etsit.
Grep-komento mahdollistaa tulosten suodattamisen sen perusteella lähetettävillä kriteereillä. Esimerkiksi etsiä kaikki prosessit UID-asetuksella "root" suorita seuraava komento:
ps -ef | grep root
Grep-komento toimii myös tiedostoilla. Kuvittele, että sinulla on tiedosto, joka sisältää luettelon kirjan otsikoista. Kuvittele, että haluat nähdä, sisältääkö tiedostossa "Punahilkka". Voit etsiä tiedostoa seuraavasti:
grep "Punahilkka" -kirjaluettelo
Miten etsi pakattuja tiedostoja käyttämällä zgrep-komentoa
Vähän tunnettu, mutta erittäin tehokas työkalu on zgrep. Zgrep-komennolla voit hakea pakatun tiedoston sisältöä ottamatta ensin sisältöä.
Zgrep-komentoa voidaan käyttää zip-tiedostoja tai tiedostoja, jotka on pakattu gzip-komennolla .
Mikä on ero?
Zip-tiedosto voi sisältää useita tiedostoja, kun taas gzip-komennolla pakattu tiedosto sisältää vain alkuperäisen tiedoston.
Jos haluat etsiä tekstiä gzipillä pakatulla tiedostolla, voit kirjoittaa seuraavan komennon:
zgrep expression filetosearch
Kuvittele esimerkiksi, että kirjojen luettelo on pakattu gzipilla. Voit etsiä pakattuna tiedostona tekstiä "pieni punainen ratsastushousu" seuraavalla komennolla:
zgrep "Punahilkka" bookslist.gz
Voit käyttää mitä tahansa lauseketta ja kaikkia grep-komennon kautta käytettävissä olevia asetuksia osana zgrep-komentoa.
Miten hakea pakattuja tiedostoja käyttäen zipgrep-komentoa
Zgrep-komento toimii hyvin gzipillä pakatulla tiedolla, mutta ei toimi niin hyvin zip-apuohjelmalla pakattujen tiedostojen kanssa.
Voit käyttää zgrepia, jos zip-tiedosto sisältää yhden tiedoston, mutta useimmissa zip-tiedostoissa on useampi kuin yksi tiedosto.
Zipgrep-komennolla etsitään kuvioita zip-tiedostossa.
Esimerkkinä kuvitella, että sinulla on tiedosto nimeltä kirjat, joilla on seuraavat otsikot:
- Harry Potter ja salaisuuksien kammio
- Taming Of The Shrew
- Hiiristä ja miehistä
- Linnunradan käsikirja liftareille
- Harry Potter ja Phoenixin järjestys
Kuvittele myös, että sinulla on tiedosto, jota kutsutaan elokuviksi seuraavilla nimillä
- Matriisi
- Harry Potter ja salaisuuksien kammio
- Harry Potter ja tulinen pikari
- Tähtien sota - uusi toivo
Kuvittele, että nämä kaksi tiedostoa on pakattu zip-muodossa tiedostoksi media.zip.
Voit käyttää zipgrep-komentoa etsiä kuvioita kaikissa zip-tiedoston tiedostoissa. Esimerkiksi:
zipgrep kuvion tiedostonimi
Kuvittele esimerkiksi, että halusit löytää kaikki Harry Potterin tapahtumat. Käytä seuraavaa komentoa:
zipgrep "Harry Potter" media.zip
Tuotos on seuraava:
kirjoja: Harry Potter ja salaisuuksien kammio
kirjat: Harry Potter ja Phoenixin tilaus
elokuvat: Harry Potter ja salaisuuksien kammio
elokuvat: Harry Potter ja tulinen pikari
Koska voit käyttää mitä tahansa lausetta, jolla on zipgrep, jota voit käyttää grep-työkalun kanssa, tekee työkalusta erittäin voimakas ja tekee hakemisesta zip-tiedostoja paljon yksinkertaisempaa kuin purkaminen, etsiminen ja pakkaaminen uudelleen.
Jos haluat vain etsiä tiettyjä tiedostoja zip-tiedostossa, voit määrittää zip-tiedostossa olevat tiedostot osana komentoa seuraavasti:
zipgrep "Harry Potter" media.zip elokuvia
Lähtö on nyt seuraava
elokuvat: Harry Potter ja salaisuuksien kammio
elokuvat: Harry Potter ja tulinen pikari
Jos haluat hakea kaikkia tiedostoja lukuun ottamatta, voit käyttää seuraavaa komentoa:
zipgrep "Harry Potter" media.zip -x kirjoja
Tämä tuottaa saman lähdön kuin aiemmin, sillä se etsii kaikkia media.zip-tiedostoja lukuun ottamatta kirjoja.