Polecenie Pipe, Grep i Sort w systemie Linux/Unix z przykładami
⚡ Inteligentne podsumowanie
Polecenia pipe, grep i sort w systemach Linux i Unix łączą i filtrują tekst: pipe przekazuje dane wyjściowe jednego polecenia do następnego, grep wyszukuje wzorce, a sort porządkuje wiersze, podczas gdy filtry przekształcają dane znajdujące się między nimi.

Pipes, grep i sort to jedne z najczęściej używanych narzędzi na Linux wiersz poleceń, ponieważ pozwalają one łączyć małe polecenia w jeden wydajny przepływ pracy. Ta strona wyjaśnia każde z nich za pomocą przykładów, a następnie pokazuje, jak filtry je łączą.
Co to jest potok w systemie Linux?
Potok to polecenie w systemie Linux, które pozwala na użycie dwóch lub więcej poleceń w taki sposób, że dane wyjściowe jednego polecenia służą jako dane wejściowe dla następnego. Krótko mówiąc, dane wyjściowe każdego procesu są przekazywane bezpośrednio jako dane wejściowe do następnego, jak w potoku. Symbol „|” oznacza potok.
Potoki pozwalają na łączenie dwóch lub więcej poleceń jednocześnie i uruchamianie ich po kolei. Możesz używać zaawansowanych poleceń, które błyskawicznie wykonują złożone zadania.
Zrozummy to na przykładzie.
Gdy używasz polecenia „cat” w celu wyświetlenia pliku rozciągającego się na wiele stron, monit szybko przechodzi do ostatniej strony pliku i nie widzisz zawartości znajdującej się w środku.
Aby tego uniknąć, możesz przekazać dane wyjściowe polecenia „cat” do polecenia „less”, które wyświetli tylko jeden długi pasek zawartości na raz.
cat filename | less
Ilustracja by to wyjaśniła. Poniższy diagram pokazuje, jak potok przekazuje dane wyjściowe jednego polecenia do następnego.
Polecenia „pg” i „więcej”.
Zamiast polecenia „less” możesz również użyć polecenia pg lub more:
cat Filename | pg
or
cat Filename | more
Następnie możesz przeglądać plik w przystępnych fragmentach i przewijać w dół, naciskając po prostu klawisz Enter. Poniższy zrzut ekranu przedstawia plik stronicowany poleceniem more.
Polecenie „grep”.
Załóżmy, że chcesz wyszukać konkretne informacje, np. kod pocztowy, w pliku tekstowym.
Możesz ręcznie przejrzeć treść, aby trace informacji. Lepszą opcją jest użycie grep polecenie. Skanuje dokument w poszukiwaniu potrzebnych informacji i prezentuje wynik w żądanym formacie.
Składnia:
grep search_string
Zobaczmy to w akcji. Zrzut ekranu poniżej pokazuje wynik wyszukiwania.
W tym przypadku polecenie grep przeszukało plik „sample” pod kątem ciągów „Apple” i „Eat”. Z tym poleceniem można użyć następujących opcji.
| Option | Funkcjonować |
|---|---|
| -v | Pokazuje wszystkie wiersze, które nie pasują do szukanego ciągu |
| -c | Wyświetla tylko liczbę pasujących linii |
| -n | Pokazuje pasującą linię i jej numer |
| -i | Dopasowuje zarówno wielkie, jak i małe litery |
| -l | Pokazuje tylko nazwę pliku z ciągiem |
Wypróbujmy opcję „-i” w tym samym pliku, co powyżej. Poniższy zrzut ekranu pokazuje wynik bez uwzględniania wielkości liter.
Używając opcji „-i”, grep odfiltrował ciąg „a” (bez względu na wielkość liter) ze wszystkich wierszy.
Polecenie sortowania
Polecenie to pomaga w alfabetycznym sortowaniu zawartości pliku.
Składnia tego polecenia to:
sort Filename
Rozważ zawartość pliku pokazaną poniżej za pomocą symbolu cat.
Uruchomienie polecenia sort powoduje uporządkowanie tych wierszy w kolejności alfabetycznej, jak pokazano poniżej.
Istnieją również rozszerzenia tego polecenia, które wymieniono poniżej.
| Option | Funkcjonować |
|---|---|
| -r | Reversesortowanie |
| -n | Sortuje numerycznie |
| -f | Sortowanie bez uwzględniania wielkości liter |
Poniższy przykład pokazuje odwrotne sortowanie zawartości pliku „abc”.
Co to jest filtr?
Linux ma wiele poleceń filtrujących, takich jak awk, grep, sed, spell i wc. Filtr pobiera dane wejściowe z jednego polecenia, wykonuje pewne przetwarzanie i zwraca dane wyjściowe.
Podczas przesyłania dwóch poleceń, „przefiltrowane” dane wyjściowe pierwszego polecenia są przekazywane do następnego. Poniższy diagram ilustruje, jak filtr wpisuje się w potok.
Zrozumiemy to na przykładzie. Mamy następujący plik „sample”, pokazany poniżej z symbolem „cat”.
Chcemy wyróżnić tylko wiersze niezawierające znaku „a”, ale wynik powinien być w odwrotnej kolejności. W tym celu można użyć następującej składni:
cat sample | grep -v a | sort -r
Przyjrzyjmy się wynikowi pokazanemu na zrzucie ekranu poniżej.







.png)
.png)

