Pipe, Grep och Sort Command i Linux/Unix med exempel
Vad är ett rör i Linux?
The 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 till nästa. Kort sagt, utdata från varje process direkt som input till nästa som en pipeline. Symbolen '|' betecknar ett rör.
Pipes hjälper dig att blanda ihop två eller flera kommandon samtidigt och köra dem i följd. Du kan använda kraftfulla kommandon som kan utföra komplexa uppgifter i en handvändning.
Låt oss förstå detta med ett exempel.
När du använder 'cat'-kommandot 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 överföra utmatningen av 'cat'-kommandot till 'less' som bara visar dig en rulllängd av innehåll åt gången.
cat filename | less
En illustration skulle göra det tydligt.
Klicka här. om videon inte är tillgänglig
kommandona 'pg' och 'more'
Istället för 'mindre' kan du också använda.
cat Filename | pg
or
cat Filename | more
Och du kan visa filen i lättsmälta bitar och rulla ner genom att helt enkelt trycka på enter-tangenten.
Kommandot 'grep'
Anta att du vill söka efter en viss information postnumret från en textfil.
Du kan själv skumma innehållet manuellt för att spåra informationen. Ett bättre alternativ är att använda kommandot grep. Den kommer att skanna dokumentet efter önskad information och presentera resultatet i ett format du vill ha.
Syntax:
grep search_string
Låt oss se det i aktion –
Här, grep kommandot har sökt i filen 'sample', efter strängen 'Apple' och 'Eat'.
Följande alternativ kan användas med detta kommando.
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 | Matcha båda (versaler och gemener) bokstäver |
-l | Visar bara namnet på filen med strängen |
Låt oss prova det första alternativet '-jag' på samma fil använd ovan –
Genom att använda alternativet 'i' har grep filtrerat strängen 'a' (skiftlägesokänslig) från alla rader.
Kommandot 'sortera'
Detta kommando hjälper till sortera ut innehållet i en fil alfabetiskt.
Syntaxen för detta kommando är:
sort Filename
Tänk på innehållet i en fil.
Använder sorteringskommandot
Det finns förlängningar till detta kommando också, och de listas nedan.
Alternativet | Funktion |
---|---|
-r | Reverses sortering |
-n | Sorterar numeriskt |
-f | Skiftlägesokänslig 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, gör en del bearbetning och ger utdata.
När du piper två kommandon, ges den "filtrerade" utsignalen från det första kommandot till nästa.
Låt oss förstå detta med hjälp av ett exempel.
Vi har följande fil "sample"
Vi vill lyfta fram endast 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.
Sammanfattning:
- Rör '|' skicka utdata från ett kommando som indata för ett annat kommando.
- Filtret tar indata från ett kommando, gör en del bearbetning och ger utdata.
- Kommandot grep kan användas för att hitta strängar och värden i ett textdokument
- Piping genom grep måste vara en av de vanligaste användningsområdena
- 'sort'-kommandot sorterar ut innehållet i en fil alfabetiskt
- kommandon mindre ,pg och fler används för att dela upp en lång fil i läsbara bitar