- STDIN (0) - standardne sisend
- STDOUT (1) - standardväljund
- STDERR (2) - standardviga
Kui hakkame töötama "toru" trikkidega, võtab "toru" käsu STDOUT ja edastab selle järgmise käsu STDIN-ile.
Vaatame üle mõned levinumad viisid, kuidas saate käsku "pipe" oma igapäevaseks kasutamiseks lisada.
Toru käsk
Põhikasutus
Parem on toru töömeetodit täpsustada elava näitega, eks? Alustame. Järgmine käsk ütleb Archi ja kõigi Archi-põhiste distrode vaikepaketi haldurile “pacman”, et see printiks välja kõik süsteemi installitud paketid.
pacman -Qqe
See on tõesti PIKK pakettide nimekiri. Kuidas oleks, kui võtaksite ainult mõned komponendid? Me võiksime kasutada "grep". Aga kuidas? Üks võimalus oleks väljundi ajutisse faili visata, "grep" soovitud väljundisse ja fail kustutada. Selle seeria ülesandeid saab iseenesest muuta skriptiks. Kuid me skriptime ainult väga suuri asju. Selle ülesande jaoks kasutame toru jõudu!
pacman -Qqe | grep
Äge, kas pole? „|” märk on kõne käsule “pipe”. See haarab STDOUTi vasakust sektsioonist ja suunab selle parema sektsiooni STDIN-i.
Ülalmainitud näites edastas käsk “pipe” väljundi osa “grep” lõpus. Nii mängib see välja.
pacman -Qqe> ~ / Töölaud / pacman_pakett.txtgrep python ~ / töölaud / pacman_package.txt
Mitu torustikku
Põhimõtteliselt pole toru käsu täiustatud kasutamisel midagi erilist. Kuidas seda kasutada, sõltub täielikult sinust.
Alustame näiteks mitme torustiku virnastamisest.
pacman -Qqe | haarama p | grep t | grep py
Pacmani käsu väljund filtreeritakse järjest edasi torustike abil "grep" abil.
Mõnikord võib faili sisuga töötades olla see tõesti väga suur. Soovitud sissekande õige koha väljaselgitamine võib olla keeruline. Otsime üles kõik kirjed, mis sisaldavad numbreid 1 ja 2.
kassi demo.txt | grep -n 1 | grep -n 2
Failide ja kataloogide loendi manipuleerimine
Mida teha, kui tegelete kataloogiga, milles on TONS faili? Kogu loendi sirvimine on üsna tüütu. Muidugi, miks mitte muuta see toruga paremini talutavaks? Selles näites tutvume kõigi kaustas "/ usr / bin" olevate failide loendiga.
ls -l
Siin prindib “ls” kõik failid ja nende andmed. Seejärel annab „toru“ selle edasi töötamiseks „rohkemale“. Kui te ei teadnud, on „rohkem” tööriist, mis muudab tekstid korraga üheks ekraanivaateliseks vaateks. Kuid see on vana tööriist ja ametliku dokumentatsiooni kohaselt on soovitatav pigem "vähem".
ls -l / usr / bin | vähem
Väljundi sortimine
Seal on sisseehitatud tööriist “sort”, mis võtab tekstisisestuse ja sorteerib need. See tööriist on tõeline pärl, kui töötate millegi tõeliselt räpase asjaga. Näiteks sain selle faili täis suvalisi stringe.
kassi demo.txt
Lihtsalt torustage see "sortimiseks".
kassi demo.txt | sorteerida
See on parem!
Kindla mustri vastete printimine
ls -l | leidma ./ -tüüp f -nimi "*.txt "-exec grep 00110011 \;
See on päris keerutatud käsk, eks? Alguses väljastab “ls” kataloogis kõigi failide loendi. Tööriist „Leia” võtab väljundi, otsib.txt ”failid ja kutsub“ grep ”otsima“ 00110011 ”. See käsk kontrollib kõiki TXT laiendiga kataloogis olevaid tekstifaile ja otsib vasteid.
Kindla vahemiku failisisu printimine
Kui töötate suure failiga, on tavaline vajadus kontrollida teatud vahemiku sisu. Saame seda teha nutika kombinatsiooniga “kass”, “pea”, “saba” ja muidugi “toru”. Tööriist “pea” väljastab sisu esimese osa ja “saba” viimase osa.
kasskass
Ainulaadsed väärtused
Duplikaatväljunditega töötades võib see olla üsna tüütu. Mõnikord võib topeltsisend põhjustada tõsiseid probleeme. Selles näites heidame tekstivoole “uniq” ja salvestame selle eraldi faili.
Näiteks on siin tekstifail, mis sisaldab suurt loendit numbritest, mis on 2-kohalised. Siin on kindlasti dubleeritud sisu, eks?
kassi duplikaat.txt | sorteerida
Nüüd teeme filtreerimisprotsessi.
kassi duplikaat.txt | sorteeri | uniq> ainulaadne.txt
Kontrollige väljundit.
nahkhiir ainulaadne.txt
Näeb parem välja!
Veatorud
See on huvitav torustikumeetod. Seda meetodit kasutatakse STDERR-i suunamiseks STDOUT-i ja jätkatakse torustikuga. Seda tähistatakse sümboliga "| &" (jutumärkideta). Näiteks loome vea ja saadame väljund mõnele muule tööriistale. Selles näites sisestasin lihtsalt juhusliku käsu ja andsin vea edasi "grep".
adsfds | & grep n
Lõpumõtted
Kui toru ise on oma olemuselt üsna lihtsustatud, pakub see tööviisil väga mitmekülgset viisi meetodi lõpmatuks kasutamiseks. Kui tegelete Bashi skriptimisega, on see palju kasulikum. Mõnikord saate lihtsalt pööraseid asju otse teha! Lisateave Bashi skriptimise kohta.