Kiedy będziemy pracować z sztuczkami „rury”, „Rura” weźmie stadout polecenia i przekazuje je do stdina następnego polecenia.
Sprawdźmy niektóre z najczęstszych sposobów włączenia polecenia „rur” do codziennego użycia.
Podstawowe użycie
Lepiej opracować metodę roboczą „rury” za pomocą na żywo, prawda? Zacznijmy. Poniższe polecenie poinformuje „Pacman”, domyślny menedżer pakietów dla Arch i wszystkich dystrybucji opartych na Arch, aby wydrukować wszystkie zainstalowane pakiety w systemie.
PACMAN -QQE
To naprawdę długa lista pakietów. Jak, o zebraniu tylko kilku komponentów? Moglibyśmy użyć „grep”. Ale jak? Jednym ze sposobów zrzucanie wyjścia do pliku tymczasowego „GREP” żądane wyjście i usuwanie pliku. Ta seria zadań sama w sobie można przekształcić w skrypt. Ale pisamy tylko do bardzo dużych rzeczy. Do tego zadania wzywajmy moc „rury”!
Pacman -qqe | Grep
Niesamowite, prawda?? „|” Znak jest wywołanie polecenia „Rury”. Chwyta stdout z lewej sekcji i zasila go do stdina prawej sekcji.
We wspomnianym przykładzie polecenie „rury” faktycznie minęło wyjście na końcu części „GREP”. Oto jak to się rozgrywa.
pacman -qqe> ~/Desktop/pacman_package.tekst
Grep Python ~/Desktop/Pacman_Package.tekst
Wiele rur
Zasadniczo nie ma nic specjalnego z zaawansowanym użyciem polecenia „rury”. To całkowicie zależy, jak go używać.
Na przykład zacznijmy od ułożenia wielu rurociągów.
Pacman -qqe | GREP P | GREP T | Grep pyWyjście polecenia Pacmana jest filtrowane coraz dalej przez „GREP” poprzez serię rur.
Czasami, kiedy pracujemy z treścią pliku, może być naprawdę, naprawdę duży. Znalezienie właściwego miejsca naszego pożądanego wejścia może być trudne. Szukajmy wszystkich wpisów zawierających cyfry 1 i 2.
Demo CAT.txt | grep -n 1 | GREP -N 2
Manipulowanie listą plików i katalogów
Co zrobić, gdy masz do czynienia z katalogiem z mnóstwem plików? Przewijanie całej listy jest dość denerwujące. Jasne, dlaczego nie uczynić go bardziej znośnym z rurą? W tym przykładzie sprawdźmy listę wszystkich plików w folderze „/usr/bin”.
ls -l|. więcej
Tutaj „LS” drukuje wszystkie pliki i ich informacje. Następnie „rura” przekazuje to do „więcej” do pracy z tym. Jeśli nie wiesz, „więcej” to narzędzie, które zamienia SMS -y w jeden ekranowy widok na raz. Jest to jednak stare narzędzie i zgodnie z oficjalną dokumentacją „mniej” jest bardziej zalecane.
ls -l /usr /bin | mniej
Sortowanie wyjścia
Istnieje wbudowane narzędzie „sortowanie”, które przyjmie wprowadzanie tekstu i sortuje je. To narzędzie jest prawdziwym klejnotem, jeśli pracujesz z czymś naprawdę bałaganem. Na przykład dostałem ten plik pełen losowych ciągów.
Demo CAT.tekst
Po prostu załóż to, aby „sortować”.
Demo CAT.txt | sortować
To lepiej!
Drukowanie dopasowania określonego wzoru
LS -L | znajdować ./ -Type f -name "*.txt "-exec grep 00110011 \;
To jest dość pokręcone polecenie, prawda? Początkowo „LS” przedstawia listę wszystkich plików w katalogu. Narzędzie „Znajdź” przyjmuje wyjście, wyszukuje „.Pliki i przywołuje „GREP” do wyszukiwania „00110011”. To polecenie sprawdzi każdy plik tekstowy w katalogu z rozszerzeniem TXT i będzie szukać dopasowań.
Wydrukuj zawartość pliku z określonego zakresu
Kiedy pracujesz z dużym plikiem, często potrzebuje sprawdzania treści określonego zakresu. Możemy to zrobić za pomocą sprytnej kombinacji „kota”, „głowy”, „ogona” i oczywiście „rur”. Narzędzie „głowicy” wysyła pierwszą część zawartości, a „ogon” wyświetla ostatnią część.
kot|. Głowa -6
kot|. ogon -6
Unikalne wartości
Podczas pracy z zduplikowanymi wyjściami może być dość denerwujące. Czasami duplikat wkładu może powodować poważne problemy. W tym przykładzie obserwujmy „Uniq” na strumieniu tekstu i zapiszmy go w osobnym pliku.
Na przykład oto plik tekstowy zawierający dużą listę liczb o długości 2 cyfr. Zdecydowanie jest tu duplikat, prawda?
Cat duplikat.txt | sortować
Teraz wykonajmy proces filtrowania.
Cat duplikat.txt | SORT | Uniq> unikalne.tekst
Sprawdź wyjście.
nietoperz unikalny.tekst
Wygląda lepiej!
Rury błędów
To interesująca metoda rur. Ta metoda służy do przekierowania STDDERR do stdout i kontynuowania rur. Jest to oznaczone przez symbol „| &” (bez cytatów). Na przykład utwórzmy błąd i wyślijmy wyjście do innego narzędzia. W tym przykładzie właśnie wpisałem losowe polecenie i przekazałem błąd „GREP”.
adsfds | i grep n
Końcowe przemyślenia
Podczas gdy sama „rura” jest dość uproszczona, sposób, w jaki działa, oferuje bardzo wszechstronny sposób wykorzystania metody w nieskończony sposób. Jeśli lubisz skrypty bash, to jest o wiele bardziej przydatne. Czasami możesz po prostu zrobić szalone rzeczy wprost! Dowiedz się więcej o skryptach Bash.