logo

Piping i Unix eller Linux

En pipe är en form av omdirigering (överföring av standardutdata till någon annan destination) som används i Linux och andra Unix-liknande operativsystem för att skicka utdata från ett kommando/program/process till ett annat kommando/program/process för vidare bearbetning . Unix/Linux-systemen tillåter stdout för ett kommando att kopplas till stdin för ett annat kommando. Du kan få det att göra det genom att använda rörkaraktären '|' .

Röret används för att kombinera två eller flera kommandon, och i detta fungerar utdata från ett kommando som indata till ett annat kommando, och detta kommandos utdata kan fungera som input till nästa kommando, och så vidare. Det kan också visualiseras som en tillfällig koppling mellan två eller flera kommandon/program/processer. Kommandoradsprogrammen som gör den fortsatta bearbetningen kallas filter.



Denna direkta koppling mellan kommandon/program/processer gör att de kan arbeta samtidigt och tillåter att data överförs mellan dem kontinuerligt istället för att behöva passera det genom temporära textfiler eller genom bildskärmen.
Rör är enkelriktade, dvs. data flödar från vänster till höger genom pipelinen.

Syntax:

command_1 | command_2 | command_3 | .... | command_N>

Exempel på Piping i Unix eller Linux

1. Lista alla filer och kataloger och ge dem som indata till kommandot `grep` med hjälp av piping i Linux

ls | grep file.txt>

ls | grep file.txt



I denna första använder vi `ls` för att lista alla filer och kataloger i den aktuella katalogen, och skickar sedan dess utdata till kommandot `grep` och söker efter filnamnet `file.txt`. Utdata från kommandot ls skickas till ingången för kommandot grep, och resultatet är en lista över filer som matchar söktermen.

pekare i c

2. Lista alla filer och kataloger och ge dem som input till 'fler'-kommandon med hjälp av piping i Linux.

$ ls -l | more>

$ ls -l | Mer

Kommandot more tar utdata från $ ls -l som sin indata. Nettoeffekten av detta kommando är att utmatningen av ls -l visas en skärm i taget. Röret fungerar som en behållare som tar utsignalen från ls -l och ger den till fler som input. Det här kommandot använder inte en disk för att ansluta standardutgången på ls -l till standardingången för mer eftersom pipe är implementerad i huvudminnet.
När det gäller I/O-omdirigeringsoperatorer är kommandot ovan ekvivalent med följande kommandosekvens.



$ ls -l ->temp mer -> temp (eller mer temp) [innehåll av temp] rm temp>
temp

ls -l -> temp

Utmatningen av ovanstående två kommandon är densamma.

java metoder

3. Sortera en lista med filer efter storlek med hjälp av piping i Linux

ls -l sort -k 5>
ls -l sort -k 5

Detta kommando listar alla filer i den aktuella katalogen och använder sedan kommandot `sort` för att sortera listan efter den femte kolumnen, som representerar filstorleken.

4. Använd kommandot sort and uniq för att sortera en fil och skriva ut unika värden med hjälp av piping i Linux

$ sort record.txt | uniq>

Detta kommer att sortera den givna filen och endast skriva ut de unika värdena.

sortera post.txt | unik

5. Använd head and tail för att skriva ut linjer i ett visst område i en fil.

$ cat sample2.txt | head -7 | tail -5>

Detta kommando väljer de första 7 raderna till (huvud -7) kommandot och det kommer att matas in till (tail -5) kommandot som slutligen kommer att skriva ut de sista 5 raderna från dessa 7 rader.

cat sample2.txt | huvud -7 | svans -5

6. Använd ls och hitta för att lista och skriva ut alla linjer som matchar ett visst mönster i matchande filer.

$ ls -l | find ./ -type f -name '*.txt' -exec grep 'program' {} ;>

Detta kommando väljer filer med .Text förlängning i den givna katalogen och söker efter mönster som program i exemplet ovan och skriver ut de som har program i sig.

ls -l | hitta ./ -typ f -namn *.txt -exec grep program {} ;

7. Använd kommandot cat, grep, tee och wc för att läsa den specifika posten från användaren och lagra i en fil och skriva ut radräkning.

$ cat result.txt | grep 'Rajat Dua' | tee file2.txt | wc -l>

Detta kommando väljer Rajat Dua och lagra dem i file2.txt och skriv ut totalt antal rader som matchar Rajat Dua

cat result.txt | grep Rajat Dua | tee file2.txt | wc -l

8.Hur kan jag omdirigera utdata från ett kommando till en fil i Unix eller Linux?

Vi kan använda omdirigeringsoperatorn `>` för att omdirigera utdata från ett ledningskommando.

Till exempel:

Om jag har ett filnamn 'file.txt' och vill omdirigera det till ett filnamn 'geeks.txt'.

lista sortera efter java
 ls | grep 'file'>geeks.txt>
geeks.txt

ls | grep 'fil'> geeks.txt

Slutsats

Piping är en kraftfull funktion i Unix och Linux operativsystem som hjälper oss att länka samman olika kommandon för att utföra komplexa uppgifter snabbt och effektivt. I den här artikeln har vi lärt oss hur vi kan omdirigera utdata från ett kommando till indata från ett annat kommando. Sammantaget kan vi säga att genom att använda rörsystem kan vi spara tid, förbättra produktiviteten och minska användningen av diskutrymme.