Et rør er en form for omdirigering (overførsel af standard output til en anden destination), der bruges i Linux og andre Unix-lignende operativsystemer til at sende output fra en kommando/program/proces til en anden kommando/program/proces for yderligere behandling . Unix/Linux-systemerne tillader stdout af en kommando at blive forbundet med stdin af en anden kommando. Du kan få det til at gøre det ved at bruge rørkarakteren '|' .
Piben bruges til at kombinere to eller flere kommandoer, og i dette fungerer output fra en kommando som input til en anden kommando, og denne kommandos output kan fungere som input til den næste kommando, og så videre. Det kan også visualiseres som en midlertidig forbindelse mellem to eller flere kommandoer/programmer/processer. De kommandolinjeprogrammer, der udfører den videre behandling, kaldes filtre.
Denne direkte forbindelse mellem kommandoer/programmer/processer giver dem mulighed for at fungere samtidigt og tillader data at blive overført mellem dem kontinuerligt i stedet for at skulle sende dem gennem midlertidige tekstfiler eller gennem displayskærmen.
Rør er ensrettede, dvs. data flyder fra venstre mod højre gennem rørledningen.
Syntaks:
command_1 | command_2 | command_3 | .... | command_N>
Eksempel på Piping i Unix eller Linux
1. List alle filer og mapper og giv dem som input til kommandoen `grep` ved hjælp af piping i Linux
ls | grep file.txt>
ls | grep file.txt
I denne første bruger vi `ls` til at liste alle filer og mapper i den aktuelle mappe, og sender derefter dens output til kommandoen `grep` og søger efter filnavnet `file.txt`. Outputtet af ls-kommandoen sendes til input af grep-kommandoen, og resultatet er en liste over filer, der matcher søgeordet.
hvad betyder dette xd
2. List alle filer og mapper og giv dem som input til 'flere' kommandoer ved hjælp af piping i Linux.
$ ls -l | more>
$ ls -l | mere
Kommandoen mere tager outputtet af $ ls -l som input. Nettoeffekten af denne kommando er, at outputtet af ls -l vises én skærm ad gangen. Røret fungerer som en beholder, der tager output fra ls -l og giver det til mere som input. Denne kommando bruger ikke en disk til at forbinde standardoutput på ls -l til standardindgangen på mere, fordi pipe er implementeret i hovedhukommelsen.
Med hensyn til I/O-omdirigeringsoperatører svarer ovenstående kommando til følgende kommandosekvens.
$ ls -l ->temp mere -> temp (eller mere temp) [indhold af temp] rm temp>Midlertidig
ls -l -> temp
Outputtet af de to ovenstående kommandoer er det samme.
3. Sorter en liste over filer efter størrelse ved hjælp af piping i Linux
ls -l sort -k 5>ls -l sortere -k 5
Denne kommando viser alle filerne i den aktuelle mappe og bruger derefter `sort`-kommandoen til at sortere listen efter den femte kolonne, som repræsenterer filstørrelsen.
4. Brug kommandoen sort and uniq til at sortere en fil og udskrive unikke værdier ved hjælp af piping i Linux
$ sort record.txt | uniq>
Dette vil sortere den givne fil og kun udskrive de unikke værdier.
sort record.txt | enestående
5. Brug hoved og hale til at udskrive linjer i et bestemt område i en fil.
$ cat sample2.txt | head -7 | tail -5>
Denne kommando vælger de første 7 linjer til (hoved -7) kommandoen, og den vil blive input til (hale -5) kommando, som til sidst vil udskrive de sidste 5 linjer fra disse 7 linjer.
kat sample2.txt | hoved -7 | hale -5
6. Brug ls og find for at liste og udskrive alle linjer, der matcher et bestemt mønster, i matchende filer.
$ ls -l | find ./ -type f -name '*.txt' -exec grep 'program' {} ;> Denne kommando vælger filer med .txt udvidelse i den givne mappe og søger efter mønstre som program i ovenstående eksempel og udskriver dem, der har program i dem.
ls -l | find ./ -type f -navn *.txt -exec grep program {} ;
7. Brug cat, grep, tee og wc-kommandoen til at læse den særlige indgang fra brugeren og gemme i en fil og udskrive linjetælling.
$ cat result.txt | grep 'Rajat Dua' | tee file2.txt | wc -l>
Denne kommando vælger Rajat Dua og gem dem i file2.txt og udskriv det samlede antal linjer, der matcher Rajat Dua
kat resultat.txt | grep Rajat Dua | tee file2.txt | wc -l
8.Hvordan kan jeg omdirigere outputtet af en pipeline-kommando til fil i Unix eller Linux?
Vi kan bruge omdirigeringsoperatoren `>` til at omdirigere outputtet af en rørledningskommando.
For eksempel:
Hvis jeg har et filnavn `file.txt` og vil omdirigere det til et filnavn `geeks.txt`.
ls | grep 'file'>geeks.txt>nørder.txt
ls | grep 'fil'> geeks.txt
Konklusion
Piping er en kraftfuld funktion i Unix- og Linux-operativsystemer, som hjælper os med at forbinde forskellige kommandoer sammen for at udføre komplekse opgaver hurtigt og effektivt. I denne artikel har vi lært, hvordan vi kan omdirigere output fra en kommando til input fra en anden kommando. Overordnet set kan vi sige, at ved at bruge rørsystemer kan vi spare tid, forbedre produktiviteten og reducere forbruget af diskplads.