Juhtimiskäsk, Grep ja sortimine Linuxis/Unixis koos näidetega

⚡ Nutikas kokkuvõte

Linuxis ja Unixis käsud „toru“ ja „grep“ ning „sort“ aheldavad ja filtreerivad teksti: toru edastab ühe käsu väljundi järgmisse, grep otsib mustreid ja sort järjestab ridu, samal ajal kui filtrid teisendavad andmeid nende vahel.

  • 🔗 Toru: Toru sümbol | edastab ühe käsu väljundi sisendina järgmisele käsule.
  • 📄 Lehitsemine: Käsk cat, mis on suunatud käsuga less, pg või more, näitab pikka faili ühe ekraanipilt korraga.
  • 🔍 haaras: Käsk grep otsib failist ridu, mis vastavad stringile või mustrile.
  • 🎚️ grepi valikud: Lipud nagu -v, -c, -n, -i ja -l inverteerivad, loevad, nummerdavad, ignoreerivad suur- ja väiketähti ning loetlevad faile.
  • 🔤 sorteeri: Sorteerimiskäsk järjestab faili read, kasutades -r, -n ja -f vastupidise, numbrilise ja suur- ja väiketähtede mittetundeva tähistamiseks.
  • 🧪 Filtrid: Filtreerimiskäsklused nagu grep, sort, awk, sed ja wc töötlevad edastatud sisendit ja toodavad väljundit.
  • 🤖 Tehisintellekti abi: Tehisintellekti assistendid ja GitHub Copilot saavad luua ja selgitada torujuhtmeid, grep-i ja sortimisprotsesse.

Pipe'i, grepi ja sortimise käsud Linuxis ja Unixis koos näidetega

Pipes, grep ja sort on ühed enimkasutatud tööriistad. Linux käsureal, sest need võimaldavad teil ühendada väikesed käsud üheks võimsaks töövooguks. See leht selgitab igaüht neist toimivate näidetega ja seejärel näitab, kuidas filtrid need omavahel seovad.

Mis on toru Linuxis?

Toru on Linuxi käsk, mis võimaldab kasutada kahte või enamat käsku nii, et ühe käsu väljund toimib sisendina järgmisele. Lühidalt öeldes suunatakse iga protsessi väljund otse sisendina järgmisele, nagu torujuhtme puhul. Sümbol '|' tähistab toru.

Torud aitavad teil korraga kahte või enamat käsku ühendada ja neid järjestikku käivitada. Saate kasutada võimsaid käske, mis täidavad keerulisi ülesandeid hetkega.

Mõistame seda ühe näitega.

Kui kasutate käsku 'cat' mitmeleheküljelise faili vaatamiseks, hüppab viip kiiresti faili viimasele lehele ja te ei näe keskel olevat sisu.

Selle vältimiseks saate käsu 'cat' väljundi suunata väärtusele 'less', mis kuvab korraga ainult ühe kerimispikkuse sisu.

cat filename | less

Illustratsioon teeks selle selgemaks. Allolev diagramm näitab, kuidas toru edastab ühe käsu väljundi järgmisse.

Linuxi toru skeem, mis edastab ühe käsu väljundi sisendina järgmisele käsule

'pg' ja 'more' käsud

'Less' asemel võite kasutada ka käsku pg või more:

cat Filename | pg

or

cat Filename | more

Seejärel saate faili vaadata seeditavate osade kaupa ja kerida allapoole, vajutades lihtsalt sisestusklahvi. Allolev ekraanipilt näitab faili, mis on leheküljetud käsuga more.

cat edastas käsu more, lehitsedes pikka faili ekraanikaupa

Käsk 'grep'

Oletame, et soovite tekstifailist otsida konkreetset teavet, näiteks postiindeksit.

Saate sisu käsitsi üle vaadata, et tracteavet. Parem variant on kasutada grep käsk. See skannib dokumendist soovitud teabe ja esitab tulemuse teie soovitud vormingus.

süntaksit:

grep search_string

Vaatame seda tegevuses. Allolev ekraanipilt näitab otsingu tulemust.

grep käsk otsib näidisfailist stringe Apple ja Eat

Siin otsis grep-käsk failist 'sample' stringe 'Apple' ja 'Eat'. Selle käsuga saab kasutada järgmisi valikuid.

valik funktsioon
-v Näitab kõiki ridu, mis ei vasta otsitud stringile
-c Kuvab ainult sobivate ridade arvu
-n Näitab sobivat rida ja selle numbrit
-i Sobib nii suur- kui ka väiketähtedega
-l Näitab ainult faili nime koos stringiga

Proovime sama faili puhul, mida eespool kasutasime, valikut '-i'. Allolev ekraanipilt näitab suur- ja väiketähti mittetundeva tulemust.

grep -i teostab tähe a tõstutundetu otsingu

Kasutades valikut '-i', on grep filtreerinud stringi 'a' (suur- ja väiketähti mittetundev) kõigilt ridadelt.

"Sorteeri" käsk

See käsk aitab faili sisu tähestikulises järjekorras sortida.

Selle käsu süntaks on:

sort Filename

Vaatleme faili sisu, mida näitab allpool olev kood „cat”.

cat käsk, mis näitab faili abc sortimata sisu

Sorteerimiskäsu käivitamine järjestab need read tähestikulises järjekorras, nagu allpool näidatud.

sortimiskäsk faili abc sisu tähestikulises järjekorras korraldamiseks

Sellel käsul on ka laiendusi ja need on loetletud allpool.

valik funktsioon
-r Reversesorteerimine
-n Sorteerib numbriliselt
-f Suur- ja väiketähtedeta sortimine

Allolev näide näitab faili "abc" sisu pöördsortimist.

sort -r käsk faili abc sisu pöördsortimine

Mis on filter?

Linuxil on palju filtreerimiskäske, näiteks awk, grep, sed, spell ja wc. Filter võtab sisendi ühelt käsult, teeb teatud töötlemise ja annab väljundi.

Kui edastate kaks käsku, antakse esimese käsu "filtreeritud" väljund järgmisele käsule. Allolev diagramm illustreerib, kuidas filter torujuhtmesse sobitub.

Linuxi filtri skeem, mis võtab vastu edastatud sisendit, töötleb seda ja toodab väljundit

Mõistagem seda näite abil. Meil ​​on järgmine fail 'sample', mis on näidatud allpool koos käsuga cat.

cat käsk, mis kuvab näidisfaili sisu enne filtreerimist

Me tahame esile tõsta ainult read, mis ei sisalda märki 'a', aga tulemus peaks olema vastupidises järjekorras. Selleks saab kasutada järgmist süntaksit:

cat sample | grep -v a | sort -r

Vaatame tulemust, mis on näidatud alloleval ekraanipildil.

cat saatis läbi käskude grep -v ja sort -r, luues vastupidises järjekorras read ilma a-täheta

KKK

Toru (|) saadab ühe käsu väljundi otse teise käsku, aheldades need kokku. Ümbersuunamine (> ja <) ühendab käsu hoopis failiga, kirjutades väljundi faili või lugedes sisendit failist. Toru lingib käske; ümbersuunamine lingib käske ja faile.

grep on lühend sõnadest Global Regular Expression Print. See skannib faili või sisendit rida-realt ja prindib iga rea, mis vastab antud mustrile. Nimi tuleneb vanast ed-redaktori käsust g/re/p, mis teostas sama otsingu.

Käsul sort on valik -u, mis sorteerib ja eemaldab duplikaatread ühe sammuga: sort -u file. Samuti saab käsuga sort käsu uniq-i suunata, näiteks sort file | uniq, kuna uniq eemaldab ainult juba külgnevad duplikaadid.

Lõpeta torujuhe ümbersuunamisega: cat sample | grep -va | sort -r > result.txt kirjutab lõppväljundi faili. Väljundi ekraanil nägemiseks ja samal ajal salvestamiseks sisesta hoopis käsk tee.

grep otsib failidest ridu, mis vastavad tekstimustrile. find-käsk leiab failid ja kataloogid ise nime, suuruse, tüübi või kuupäeva järgi. Lühidalt öeldes vaatab grep failide sisu, samas kui find otsib faile kogu kataloogipuust.

Käsk tee loeb torust ja kirjutab andmed korraga nii ekraanile kui ka ühte või mitmesse faili, näiteks grep error log | tee errors.txt. See võimaldab salvestada vaheväljundit ilma torujuhet katkestamata.

Tehisintellekti assistendid oskavad lihtsas ingliskeelses päringus soovitada õiget edastatud käskude ahelat, selgitada tundmatuid grep- või sortimismärke ning märgata konveieril vigu. Masinõppe tööriistad skannivad ka edastatud logiväljundit, et märkida anomaaliaid, mida käsitsi filtreerimine ei märkaks.

Jah. GitHubi koopia suudab lühikesest kommentaarist, mis kirjeldab teie vajadusi, genereerida torujuhtmeid, mis ühendavad käsud cat, grep ja sort, ning täita tippimise ajal käske. RevVõrrelge kõiki soovitatud torujuhtmeid näidisandmetega, eriti valikuid, mis muudavad ridade järjekorda või kustutavad neid.

Võta see postitus kokku järgmiselt: