Pipe-, Grep- ja Sort-komento Linuxissa/Unixissa esimerkein

โšก ร„lykรคs yhteenveto

Pipe-, grep- ja sort-komennot Linuxissa ja Unixissa ketjuttavat ja suodattavat tekstiรค: pipe syรถttรครค yhden komennon tulosteen seuraavaan, grep etsii kuvioita ja sort jรคrjestรครค rivit, kun taas suodattimet muuntavat dataa niiden vรคlillรค.

  • ๐Ÿ”— Putki: Pystyviivasymboli | vรคlittรครค yhden komennon tulosteen syรถtteenรค seuraavalle komennon syรถtteeksi.
  • ๐Ÿ“„ Sivutus: cat-komento ohjataan tilaan less, pg tai more ja nรคyttรครค pitkรคn tiedoston yhden nรคytรถn kerrallaan.
  • ๐Ÿ” grep: Grep-komento etsii tiedostosta rivejรค, jotka vastaavat merkkijonoa tai kuviota.
  • ๐ŸŽš๏ธ grep-asetukset: Lipuilla, kuten -v, -c, -n, -i ja -l, kรครคnnetรครคn, lasketaan, numeroidaan, kirjainkokoa ei oteta huomioon ja tiedostoja listataan.
  • ๐Ÿ”ค jรคrjestellรค: Lajittelukomento jรคrjestรครค tiedoston rivit kรคyttรคmรคllรค valitsimia -r, -n ja -f kรครคnteiselle, numeeriselle ja kirjainkokoa huomioimattomalle jรคrjestykselle.
  • ๐Ÿงช Suodattimet: Suodatinkomennot, kuten grep, sort, awk, sed ja wc, kรคsittelevรคt johdettua syรถtettรค ja tuottavat tulosteen.
  • ๐Ÿค– Tekoรคlyn apu: Tekoรคlyavustajat ja GitHub Copilot voivat rakentaa ja selittรครค pipe-, grep- ja sort-putkistoja.

Pipe-, grep- ja sort-komennot Linuxissa ja Unixissa esimerkkien kera

Putket, grep ja sort ovat kรคytetyimpiรค tyรถkaluja Linux komentoriviltรค, โ€‹โ€‹koska niiden avulla voit yhdistรครค pieniรค komentoja yhdeksi tehokkaaksi tyรถnkuluksi. Tรคllรค sivulla selitetรครคn jokainen komento toimivien esimerkkien avulla ja nรคytetรครคn sitten, miten suotimet sitovat ne yhteen.

Mikรค on putki Linuxissa?

Pipe on Linuxissa komento, jonka avulla voit kรคyttรครค kahta tai useampaa komentoa siten, ettรค yhden komennon tuloste toimii syรถtteenรค seuraavalle. Lyhyesti sanottuna kunkin prosessin tuloste syรถtetรครคn suoraan syรถtteenรค seuraavalle, kuten liukuhihnassa. Symboli '|' tarkoittaa putkea.

Putkien avulla voit yhdistรครค kaksi tai useampia komentoja samanaikaisesti ja suorittaa ne perรคkkรคin. Voit kรคyttรครค tehokkaita komentoja, jotka suorittavat monimutkaisia โ€‹โ€‹tehtรคviรค hetkessรค.

Ymmรคrtรคkรครคmme tรคmรค esimerkillรค.

Kun kรคytรคt 'cat'-komentoa usean sivun mittaisen tiedoston tarkastelemiseen, kehote hyppรครค nopeasti tiedoston viimeiselle sivulle, etkรค nรคe keskellรค olevaa sisรคltรถรค.

Tรคmรคn vรคlttรคmiseksi voit ohjata 'cat'-komennon tulosteen 'less'-muotoon, jolloin nรคet kerrallaan vain yhden vierityspituuden sisรคltรถรค.

cat filename | less

Kuva selventรคisi asiaa. Alla oleva kaavio nรคyttรครค, kuinka putki vรคlittรครค yhden komennon tulosteen seuraavaan.

Kaavio Linux-putkesta, joka vรคlittรครค yhden komennon tulosteen syรถtteenรค seuraavalle komennon syรถtteelle

'pg' ja 'more'-komennot

'Less'-komennon sijaan voit kรคyttรครค myรถs pg- tai more-komentoa:

cat Filename | pg

or

cat Filename | more

Voit sitten tarkastella tiedostoa sulateltavissa olevissa osissa ja vierittรครค alaspรคin painamalla Enter-nรคppรคintรค. Alla olevassa kuvakaappauksessa nรคkyy tiedosto, joka on sivutettu more-komennolla.

cat ohjasi komentoa more sivuttaen pitkรครค tiedostoa nรคyttรถ kerrallaan

'grep'-komento

Oletetaan, ettรค haluat etsiรค tiettyรค tietoa, kuten postinumeroa, tekstitiedostosta.

Voit silmรคillรค sisรคllรถn manuaalisesti itse tractiedot. Parempi vaihtoehto on kรคyttรครค grep komento. Se skannaa dokumentin haluttujen tietojen varalta ja esittรครค tuloksen haluamassasi muodossa.

Syntaksi:

grep search_string

Katsotaanpa sitรค toiminnassa. Alla oleva kuvakaappaus nรคyttรครค haun tuloksen.

grep-komento etsii esimerkkitiedostosta merkkijonoja Apple ja Eat

Tรคssรค grep-komento on etsinyt tiedostosta 'sample' merkkijonoja 'Apple' ja 'Eat'. Seuraavia asetuksia voidaan kรคyttรครค tรคmรคn komennon kanssa.

Vaihtoehto Toiminto
-v Nรคyttรครค kaikki rivit, jotka eivรคt vastaa haettua merkkijonoa
-c Nรคyttรครค vain vastaavien rivien mรครคrรคn
-n Nรคyttรครค vastaavan rivin ja sen numeron
-i Vastaa sekรค isoja ettรค pieniรค kirjaimia
-l Nรคyttรครค vain tiedoston nimen merkkijonon kanssa

Kokeillaan '-i'-optiota samalle tiedostolle kuin yllรค. Alla oleva kuvakaappaus nรคyttรครค kirjainkokoa huomioimattoman tuloksen.

grep -i suorittaa kirjainkokoa riippumattoman haun a-kirjaimelle

Kรคyttรคmรคllรค '-i'-optiota grep on suodattanut merkkijonon 'a' (kirjainkokoa ei erotella) kaikilta riveiltรค.

"Lajittele"-komento

Tรคmรค komento auttaa lajittelemaan tiedoston sisรคllรถn aakkosjรคrjestykseen.

Tรคmรคn komennon syntaksi on:

sort Filename

Tarkastellaan alla olevan cat-komennon kuvaamaa tiedoston sisรคltรถรค.

cat-komento, joka nรคyttรครค abc-tiedoston lajittelemattoman sisรคllรถn

Lajittelukomennon suorittaminen jรคrjestรครค rivit aakkosjรคrjestykseen alla olevan kuvan mukaisesti.

lajittelukomento tiedoston abc sisรคllรถn jรคrjestรคmiseksi aakkosjรคrjestykseen

Tรคlle komennolle on myรถs laajennuksia, ja ne on lueteltu alla.

Vaihtoehto Toiminto
-r Reverselajittelu
-n Lajittelee numeerisesti
-f Kirjainkokoa ei erotteleva lajittelu

Alla oleva esimerkki nรคyttรครค kรครคnteisen tiedoston "abc" sisรคllรถn lajittelun.

sort -r -komento kรครคnteisen lajittelun tiedoston abc sisรคltรถรถn

Mikรค on suodatin?

Linuxissa on paljon suodatuskomentoja, kuten awk, grep, sed, spell ja wc. Suodatin ottaa syรถtteen yhdestรค komennosta, suorittaa jonkin verran kรคsittelyรค ja antaa tulosteen.

Kun pipetoit kaksi komentoa, ensimmรคisen komennon "suodatettu" tuloste annetaan seuraavalle. Alla oleva kaavio havainnollistaa, miten suodatin sopii pipelineen.

Kaavio Linux-suodattimesta, joka ottaa vastaan โ€‹โ€‹johdettua syรถtettรค, kรคsittelee sen ja tuottaa tulosteen

Ymmรคrretรครคn tรคmรค esimerkin avulla. Meillรค on seuraava tiedosto 'sample', jonka cat-metodi on esitetty alla.

cat-komento, joka nรคyttรครค esimerkkitiedoston sisรคllรถn ennen suodatusta

Haluamme korostaa vain rivit, jotka eivรคt sisรคllรค merkkiรค 'a', mutta tuloksen pitรคisi olla kรครคnteisessรค jรคrjestyksessรค. Tรคtรค varten voidaan kรคyttรครค seuraavaa syntaksia:

cat sample | grep -v a | sort -r

Katsotaanpa tulosta, joka nรคkyy alla olevassa kuvakaappauksessa.

cat johdettiin komennoilla grep -v ja sort -r, jolloin saatiin kรครคnteisessรค jรคrjestyksessรค olevia rivejรค ilman a-kirjainta.

UKK

Putki (|) lรคhettรครค yhden komennon tulosteen suoraan toiseen komentoon ketjuttaen ne yhteen. Uudelleenohjaus (> ja <) yhdistรครค komennon tiedostoon kirjoittamalla tulosteen tiedostoon tai lukemalla syรถtteen tiedostosta. Putki linkittรครค komentoja; uudelleenohjaus linkittรครค komentoja ja tiedostoja.

grep on lyhenne sanoista Global Regular Expression Print. Se skannaa tiedoston tai syรถtteen rivi riviltรค ja tulostaa jokaisen rivin, joka vastaa antamaasi mallia. Nimi tulee vanhasta editorin komennosta g/re/p, joka suoritti saman haun.

sort-komennossa on -u-optio, joka lajittelee ja poistaa kaksoiskappaleet yhdessรค vaiheessa: sort -u file. Voit myรถs syรถttรครค sort-komennon uniq-komentoon, kuten sort file | uniq, koska uniq poistaa vain jo vierekkรคiset kaksoiskappaleet.

Lopeta prosessi uudelleenohjauksella: cat sample | grep -va | sort -r > result.txt kirjoittaa lopullisen tulosteen tiedostoon. Jos haluat nรคhdรค tulosteen nรคytรถllรค ja tallentaa sen samanaikaisesti, kรคytรค tee-komentoa.

grep etsii tiedostoista rivejรค, jotka vastaavat tekstikuviota. find-komento paikantaa tiedostoja ja hakemistoja nimen, koon, tyypin tai pรคivรคmรครคrรคn perusteella. Lyhyesti sanottuna grep etsii tiedostojen sisรคltรถรค, kun taas find etsii tiedostoja hakemistopuusta.

tee-komento lukee putkesta ja kirjoittaa tiedot sekรค nรคytรถlle ettรค yhteen tai useampaan tiedostoon kerralla, esimerkiksi grep error log | tee errors.txt. Sen avulla voit tallentaa vรคlitulosteen katkaisematta putkea.

Tekoรคlyavustajat voivat ehdottaa oikeaa komentoketjua selkokielisestรค pyynnรถstรค, selittรครค vieraita grep- tai sort-lippuja ja havaita virheitรค prosessissa. Koneoppimistyรถkalut myรถs skannaavat johdettuja lokitietoja merkitรคkseen poikkeavuuksia, jotka manuaalinen suodatus ei huomaisi.

Kyllรค. GitHub Copilot voi luoda putkia, jotka yhdistรคvรคt cat-, grep- ja sort-komennot lyhyestรค kommentista, joka kuvaa tarvitsemasi tiedot, ja suorittaa komentoja kirjoittaessasi. RevVertaile ehdotettua prosessia esimerkkidataa vasten, erityisesti vaihtoehtoja, jotka jรคrjestรคvรคt rivit uudelleen tai poistavat niitรค.

Tiivistรค tรคmรค viesti seuraavasti: