Pipe-, Grep- en sorteeropdracht in Linux/Unix met voorbeelden
Wat is een pijp in Linux?
The Pipe is een commando in Linux waarmee je twee of meer commando's kunt gebruiken, zodat de uitvoer van het ene commando dient als invoer voor het volgende. Kortom, de output van elk proces direct als input voor het volgende als een pijplijn. Het symbool '|' duidt een pijp aan.
Pipes helpen je om twee of meer commando's tegelijk te mash-uppen en ze achter elkaar uit te voeren. Je kunt krachtige commando's gebruiken die complexe taken in een handomdraai kunnen uitvoeren.
Laten we dit met een voorbeeld begrijpen.
Wanneer u de opdracht 'cat' gebruikt om een bestand te bekijken dat meerdere pagina's beslaat, springt de prompt snel naar de laatste pagina van het bestand en ziet u de inhoud niet in het midden.
Om dit te voorkomen, kunt u de uitvoer van het 'cat'-commando naar 'less' leiden, waardoor u slechts één scrolllengte aan inhoud tegelijk kunt zien.
cat filename | less
Een illustratie zou het duidelijk maken.
Klik hier als de video niet toegankelijk is
'pg'- en 'more'-opdrachten
In plaats van ‘minder’ kun je ook gebruiken.
cat Filename | pg
or
cat Filename | more
En u kunt het bestand in verteerbare bits bekijken en naar beneden scrollen door simpelweg op de Enter-toets te drukken.
Het 'grep'-commando
Stel dat u bepaalde informatie (de postcode) uit een tekstbestand wilt opzoeken.
U kunt de inhoud zelf handmatig doorbladeren om de informatie te traceren. Een betere optie is om het grep-commando te gebruiken. Het scant het document op de gewenste informatie en presenteert het resultaat in het gewenste formaat.
Syntax:
grep search_string
Laten we het in actie zien –
Hier grep command heeft in het bestand 'sample' gezocht naar de string 'Apple' en 'Eat'.
De volgende opties kunnen met deze opdracht 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 | Zorg ervoor dat beide letters (hoofdletters en kleine letters) overeenkomen |
-l | Toont alleen de naam van het bestand met de tekenreeks |
Laten we de eerste optie proberen '-i' op hetzelfde bestandsgebruik hierboven –
Met behulp van de 'i'-optie heeft grep de string 'a' (niet hoofdlettergevoelig) uit alle regels gefilterd.
Het commando 'sorteren'
Dit commando helpt hierbij de inhoud van een bestand alfabetisch sorteren.
De syntaxis voor deze opdracht is:
sort Filename
Denk aan de inhoud van een bestand.
Met behulp van de sorteeropdracht
Er zijn extensies ook op dit commando, en ze worden hieronder vermeld.
Keuze | Functie |
---|---|
-r | Revers sorteren |
-n | Sorteert numeriek |
-f | Hoofdletterongevoelig sorteren |
Het onderstaande voorbeeld toont het omgekeerde sorteren van de inhoud in bestand 'abc'.
Wat is een filter?
Linux heeft veel filteropdrachten zoals awk, grep, sed, spell en wc. Een filter neemt invoer van één opdracht, voert enige verwerking uit en geeft uitvoer.
Wanneer u twee opdrachten doorsluist, wordt de “gefilterde” uitvoer van de eerste opdracht doorgegeven aan de volgende.
Laten we dit begrijpen aan de hand van een voorbeeld.
We hebben het volgende bestand 'sample'
Wij willen benadrukken alleen de regels die het teken 'a' niet bevatten, maar het resultaat moet in omgekeerde volgorde zijn.
Hiervoor kan de volgende syntaxis worden gebruikt.
cat sample | grep -v a | sort - r
Laten we naar het resultaat kijken.
Overzicht:
- Leidingen '|' stuur de uitvoer van één commando als invoer van een ander commando.
- Het filter neemt invoer van één opdracht, voert enige verwerking uit en geeft uitvoer.
- Het grep-commando kan worden gebruikt om tekenreeksen en waarden in een tekstdocument te vinden
- Het doorvoeren van grep moet een van de meest voorkomende toepassingen zijn
- Het commando 'sort' sorteert de inhoud van een bestand alfabetisch
- less,pg en more commando's worden gebruikt om een lang bestand in leesbare bits te verdelen