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.

Vad är ett rör i Linux

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.

kommandona 'pg' och 'more'

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 –

Kommandot 'grep'

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 'grep'

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.

Kommandot 'sortera'

Använder sorteringskommandot

Kommandot 'sortera'

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'.

Kommandot 'sortera'

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.

Vad är ett filter

Låt oss förstå detta med hjälp av ett exempel.

Vi har följande fil "sample"

Vad är ett filter

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.

Vad är ett filter

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