Pipe, Grep och Sort Command i Linux/Unix med exempel
⚡ Smart sammanfattning
Pipe-, grep- och sort-kommandon i Linux och Unix kedje- och filtrera text: en pipe-kommando matar utdata från ett kommando till nästa, grep söker efter mönster och sort ordnar rader, medan filter transformerar data mellan dem.
Pipes, grep och sort är bland de mest använda verktygen på Linux kommandoraden, eftersom de låter dig koppla samman små kommandon till ett kraftfullt arbetsflöde. Den här sidan förklarar vart och ett med fungerande exempel och visar sedan hur filter kopplar ihop dem.
Vad är ett rör i Linux?
Pipe är ett kommando i Linux som låter dig använda två eller flera kommandon så att utdata från ett kommando fungerar som indata för nästa. Kort sagt, utdata från varje process matas direkt som indata till nästa, som en pipeline. Symbolen '|' betecknar en pipe.
Pipes hjälper dig att blanda ihop två eller flera kommandon samtidigt och köra dem efter varandra. Du kan använda kraftfulla kommandon som utför komplexa uppgifter på ett ögonblick.
Låt oss förstå detta med ett exempel.
När du använder kommandot 'cat' för att visa en fil som sträcker sig över flera sidor, hoppar prompten snabbt till den sista sidan i filen, och du ser inte innehållet i mitten.
För att undvika detta kan du skicka utdata från kommandot 'cat' till 'less', vilket bara visar en rullningslängd av innehåll åt gången.
cat filename | less
En illustration skulle förtydliga det. Diagrammet nedan visar hur en pipe skickar utdata från ett kommando till nästa.
kommandona 'pg' och 'more'
Istället för 'less' kan du också använda kommandot pg eller more:
cat Filename | pg
or
cat Filename | more
Du kan sedan visa filen i lättförståeliga bitar och scrolla nedåt genom att helt enkelt trycka på Enter-tangenten. Skärmdumpen nedan visar en fil som har öppnats med kommandot "more".
Kommandot 'grep'
Anta att du vill söka efter specifik information, till exempel ett postnummer, i en textfil.
Du kan skumma igenom innehållet manuellt själv för att tracinformationen. Ett bättre alternativ är att använda grep kommandot. Den skannar dokumentet efter önskad information och presenterar resultatet i det format du önskar.
Syntax:
grep search_string
Låt oss se det i praktiken. Skärmdumpen nedan visar resultatet av sökningen.
Här har grep-kommandot sökt i filen 'sample' efter strängarna 'Apple' och 'Eat'. Följande alternativ kan användas med det här kommandot.
| Alternativet | Funktion |
|---|---|
| -v | Visar alla rader som inte matchar den sökta strängen |
| -c | Visar endast antalet matchande rader |
| -n | Visar den matchande raden och dess nummer |
| -i | Matchar både versaler och gemener |
| -l | Visar bara namnet på filen med strängen |
Låt oss prova alternativet '-i' på samma fil som användes ovan. Skärmdumpen nedan visar resultatet utan att skiftlägeskänsligt användas.
Med hjälp av alternativet '-i' har grep filtrerat strängen 'a' (okänslig för versaler och skiftlägen) från alla rader.
Kommandot 'sortera'
Det här kommandot hjälper till att sortera innehållet i en fil alfabetiskt.
Syntaxen för detta kommando är:
sort Filename
Betrakta innehållet i en fil, visad med cat nedan.
Genom att köra sorteringskommandot ordnas raderna i alfabetisk ordning, som visas nedan.
Det finns även tillägg till det här kommandot, och de listas nedan.
| Alternativet | Funktion |
|---|---|
| -r | Reversesortering |
| -n | Sorterar numeriskt |
| -f | Skiftlägesobegränsad sortering |
Exemplet nedan visar omvänd sortering av innehållet i filen 'abc'.
Vad är ett filter?
Linux har många filterkommandon som awk, grep, sed, spell och wc. Ett filter tar indata från ett kommando, utför en del bearbetning och ger utdata.
När du piper två kommandon ges den "filtrerade" utdata från det första kommandot till nästa. Diagrammet nedan illustrerar hur ett filter passar in i en pipeline.
Låt oss förstå detta med hjälp av ett exempel. Vi har följande fil 'exempel', som visas med cat nedan.
Vi vill bara markera de rader som inte innehåller tecknet 'a', men resultatet ska vara i omvänd ordning. För detta kan följande syntax användas:
cat sample | grep -v a | sort -r
Låt oss titta på resultatet, som visas på skärmdumpen nedan.








.png)
.png)

