Pipe-, Grep- en sorteeropdracht in Linux/Unix met voorbeelden
โก Slimme samenvatting
De commando's pipe, grep en sort in Linux en Unix leiden tekst door elkaar en filteren deze: een pipe voert de uitvoer van het ene commando door naar het volgende, grep zoekt naar patronen en sort rangschikt regels, terwijl filters de gegevens ertussen transformeren.

Pipes, grep en sort behoren tot de meest gebruikte tools op de Linux Commandoregel, omdat je hiermee kleine commando's kunt combineren tot รฉรฉn krachtige workflow. Deze pagina legt elk commando uit met uitgewerkte voorbeelden en laat vervolgens zien hoe filters ze met elkaar verbinden.
Wat is een pijp in Linux?
De pipe is een commando in Linux waarmee je twee of meer commando's kunt gebruiken, waarbij de uitvoer van het ene commando als invoer dient voor het volgende. Kort gezegd, de uitvoer van elk proces wordt direct als invoer gebruikt voor het volgende, net als in een pijplijn. Het symbool '|' duidt een pipe aan.
Met pipes kun je twee of meer commando's tegelijk combineren en achter elkaar uitvoeren. Je kunt krachtige commando's gebruiken die complexe taken razendsnel uitvoeren.
Laten we dit met een voorbeeld begrijpen.
Wanneer je het commando 'cat' gebruikt om een โโbestand te bekijken dat meerdere pagina's beslaat, springt de prompt snel naar de laatste pagina van het bestand en zie je de inhoud daartussen niet.
Om dit te voorkomen, kun je de uitvoer van het 'cat'-commando doorsturen naar 'less', waardoor je slechts รฉรฉn scrolllengte aan inhoud tegelijk te zien krijgt.
cat filename | less
Een illustratie zou het verduidelijken. Het onderstaande diagram laat zien hoe een pijp de uitvoer van het ene commando doorgeeft aan het volgende.
'pg'- en 'more'-opdrachten
In plaats van 'less' kun je ook de opdracht pg of more gebruiken:
cat Filename | pg
or
cat Filename | more
Je kunt het bestand vervolgens in behapbare stukjes bekijken en naar beneden scrollen door simpelweg op de enter-toets te drukken. De onderstaande schermafbeelding toont een bestand dat is gepagineerd met het commando 'more'.
Het 'grep'-commando
Stel dat u in een tekstbestand naar specifieke informatie wilt zoeken, zoals een postcode.
U kunt de inhoud zelf handmatig doorlezen om trace de informatie. Een betere optie is om de grep De opdracht scant het document op de gewenste informatie en presenteert het resultaat in het door u gewenste formaat.
Syntax:
grep search_string
Laten we het in actie zien. De onderstaande schermafbeelding toont het resultaat van de zoekopdracht.
Hier heeft het grep-commando het bestand 'sample' doorzocht op de tekenreeksen 'Apple' en 'Eat'. De volgende opties kunnen met dit commando worden gebruikt.
| Keuze | Functie |
|---|---|
| -v | Toont alle regels die niet overeenkomen met de gezochte string |
| -c | Geeft alleen het aantal overeenkomende regels weer |
| -n | Toont de overeenkomende lijn en het nummer ervan |
| -i | Komt overeen met zowel hoofdletters als kleine letters |
| -l | Toont alleen de naam van het bestand met de tekenreeks |
Laten we de optie '-i' eens proberen op hetzelfde bestand als hierboven. De onderstaande schermafbeelding toont het resultaat, waarbij geen rekening wordt gehouden met hoofdletters en kleine letters.
Met de optie '-i' heeft grep de tekenreeks 'a' (hoofdletterongevoelig) uit alle regels gefilterd.
Het commando 'sorteren'
Met dit commando kun je de inhoud van een bestand alfabetisch sorteren.
De syntaxis voor deze opdracht is:
sort Filename
Bekijk de inhoud van een bestand, zoals hieronder weergegeven met `cat`.
Door het sorteercommando uit te voeren, worden die regels in alfabetische volgorde gerangschikt, zoals hieronder weergegeven.
Er bestaan โโook uitbreidingen op dit commando, die hieronder worden vermeld.
| Keuze | Functie |
|---|---|
| -r | Reverses sorteren |
| -n | Sorteert numeriek |
| -f | Sorteren zonder rekening te houden met hoofdletters |
Het onderstaande voorbeeld toont het omgekeerde sorteren van de inhoud in bestand 'abc'.
Wat is een filter?
Linux beschikt over een groot aantal filtercommando's, zoals awk, grep, sed, spell en wc. Een filter neemt invoer van een commando, voert een bepaalde bewerking uit en geeft uitvoer.
Wanneer je twee commando's doorstuurt via een pipe, wordt de 'gefilterde' uitvoer van het eerste commando aan het volgende doorgegeven. Het onderstaande diagram illustreert hoe een filter in een pipeline past.
Laten we dit aan de hand van een voorbeeld verduidelijken. We hebben het volgende bestand 'sample', dat hieronder met 'cat' wordt weergegeven.
We willen alleen de regels markeren die de letter 'a' niet bevatten, maar het resultaat moet in omgekeerde volgorde zijn. Hiervoor kan de volgende syntax worden gebruikt:
cat sample | grep -v a | sort -r
Laten we het resultaat bekijken, zoals te zien is in de onderstaande schermafbeelding.







.png)
.png)

