- STDIN (0) - standardni vhod
- STDOUT (1) - standardni izhod
- STDERR (2) - Standardna napaka
Ko bomo delali s triki "pipe", bo "pipe" vzel STDOUT ukaza in ga poslal STDIN naslednjega ukaza.
Oglejmo si nekaj najpogostejših načinov, kako lahko ukaz "pipe" vključite v svojo vsakodnevno uporabo.
Ukaz cevi
Osnovna uporaba
Bolje je, da delovni način "cevi" podrobneje opišete s primerom v živo, kajne? Začnimo. Naslednji ukaz bo "pacman", privzetemu upravitelju paketov za Arch in vse distribucije, ki temeljijo na Archu, natisnil vse nameščene pakete v sistemu.
pacman -Qqe
To je res DOLG seznam paketov. Kako pa je, če poberem le nekaj komponent? Lahko bi uporabili "grep". Ampak kako? Eden od načinov bi bil odlaganje izhoda v začasno datoteko, "grep" želenega izhoda in brisanje datoteke. To vrsto nalog lahko samo po sebi spremenimo v skript. Toda scenarij pišemo le za zelo velike stvari. Za to nalogo pokličimo moč "cevi"!
pacman -Qqe | grep
Super, kajne? Oznaka "|" znak je klic ukaza "pipe". Z levega odseka prime STDOUT in ga poda v STDIN desnega odseka.
V prej omenjenem primeru je ukaz "pipe" dejansko prenesel izhod na koncu dela "grep". Evo, kako se to pokaže.
pacman -Qqe> ~ / Desktop / pacman_package.txtgrep python ~ / Desktop / pacman_package.txt
Več cevovodov
V bistvu z napredno uporabo ukaza "pipe" ni nič posebnega. Od vas je odvisno, kako jo boste uporabili.
Začnimo na primer z zlaganjem več cevovodov.
pacman -Qqe | grep p | grep t | grep py
Izhod pacmanovega ukaza filtrira skozi grebanje skozi vrsto cevovodov.
Včasih, ko delamo z vsebino datoteke, je lahko zelo velika. Ugotoviti pravi kraj našega želenega vstopa je lahko težko. Poiščimo vse vnose, ki vključujejo številki 1 in 2.
demo mačka.txt | grep -n 1 | grep -n 2
Manipuliranje s seznamom datotek in imenikov
Kaj storiti, ko imate opravka z imenikom, v katerem je TONS datotek? Precej nadležno se je pomikati po celotnem seznamu. Seveda, zakaj ne bi bilo s cevjo bolj znosno? V tem primeru si oglejmo seznam vseh datotek v mapi »/ usr / bin«.
ls -l
Tukaj “ls” natisne vse datoteke in njihove podatke. Nato ga "pipe" posreduje v "more" za delo s tem. Če niste vedeli, je »več« orodje, ki besedila naenkrat spremeni v en skrben pogled. Vendar je staro orodje in v skladu z uradno dokumentacijo je bolj priporočljivo "manj".
ls -l / usr / bin | manj
Razvrščanje izhoda
Vgrajeno je orodje za razvrščanje, ki bo vneslo besedilo in jih razvrstilo. To orodje je pravi dragulj, če delate z nečistim. Na primer, to datoteko imam polno naključnih nizov.
demo mačka.txt
Preprosto napeljite, da "razvrstite".
demo mačka.txt | razvrsti
To je bolje!
Tiskanje ujemanj določenega vzorca
ls -l | najti ./ -tip f -ime "*.txt "-exec grep 00110011 \;
To je precej zvit ukaz, kajne? Sprva »ls« prikaže seznam vseh datotek v imeniku. Orodje za iskanje najde rezultate in išče.txt «in pokliče» grep «za iskanje» 00110011 «. Ta ukaz bo preveril vsako posamezno besedilno datoteko v imeniku s pripono TXT in poiskal ujemanja.
Natisnite vsebino datoteke določenega obsega
Ko delate z veliko datoteko, je običajno treba preveriti vsebino določenega obsega. Prav to lahko storimo s pametno kombinacijo "mačka", "glava", "rep" in seveda "cev". Orodje "glava" prikaže prvi del vsebine, "rep" pa zadnji del.
mačkamačka
Edinstvene vrednote
Pri delu s podvojenimi izhodi je lahko precej moteče. Včasih lahko dvojnik vnosa povzroči resne težave. V tem primeru oddajmo »uniq« na tok besedila in ga shranimo v ločeno datoteko.
Tukaj je na primer besedilna datoteka, ki vsebuje velik seznam številk, ki so dvomestne. Tu so zagotovo podvojene vsebine, kajne?
mačka dvojnik.txt | razvrsti
Zdaj pa izvedimo postopek filtriranja.
mačka dvojnik.txt | razvrsti | uniq> edinstven.txt
Oglejte si izhod.
netopir edinstven.txt
Izgleda bolje!
Cevi za napake
To je zanimiva metoda cevovodov. Ta metoda se uporablja za preusmeritev STDERR v STDOUT in nadaljevanje s cevovodi. To je označeno s simbolom "| &" (brez narekovajev). Na primer, ustvarimo napako in izhodne podatke pošljemo drugemu orodju. V tem primeru sem samo vtipkal nekaj naključnih ukazov in napako posredoval »grep«.
adsfds | & grep n
Zadnje misli
Čeprav je "cev" sama po sebi precej poenostavljena, pa način delovanja ponuja zelo vsestranski način uporabe metode na neskončne načine. Če se ukvarjate s skripti Bash, je to bolj koristno. Včasih lahko naravnost počneš nore stvari! Preberite več o skripti za Bash.