Jak uruchamiać polecenia ze standardowego wejścia za pomocą TEE i XARGS w Linux

Jak uruchamiać polecenia ze standardowego wejścia za pomocą TEE i XARGS w Linux

Korzystając z wiersza poleceń, możesz bezpośrednio przekazać wyjście jednego programu (na przykład narzędzie, które generuje niektóre informacje lub statystyki systemowe) jako dane wejściowe dla innego programu (takie jak narzędzia filtrowania tekstu lub poszukiwania wzorów, takie jak GREP, SED lub AWK, do dalszego przetwarzania), przy użyciu rurociągu.

[Może się również spodobać: poznaj podstawy, w jaki sposób Linux I/O (wejście/wyjście) działają przekierowanie]]

Dwa najważniejsze narzędzia wiersza poleceń, które można użyć z rurociągami do budowy wierszy poleceń, to:

  • XARGS - Odczytuje strumienie danych ze standardowego wejścia, a następnie generuje i wykonuje wiersze poleceń.
  • TEE - odczytuje ze standardowego wejścia i zapisuje jednocześnie do standardowego wyjścia i jednego lub wielu plików. To bardziej polecenie przekierowania.

W tym prostym artykule opiszemy, jak budować i wykonywać wiele poleceń ze standardowych wejściowych za pomocą Rury, trójnik, I Xargs Polecenia w Linux.

Najprostsza składnia do używania rura, które mogłeś już zobaczyć w poleceń w wielu naszych samouczkach Linux, jest następujący. Ale możesz zbudować dłuższy wiersz poleceń z kilkoma poleceniami.

$ Command1 Args | Command2 Args lub # Command1 Args | Command2 args | Command3 Args… 

Poniżej znajduje się przykład użycia rurociągu do przekazania wyjścia polecenia DMESG do polecenia głowy.

$ dmesg | głowa 
Przejdź wyjście polecenia do innego polecenia

Jak używać xargs do uruchamiania poleceń

W tym przykładzie drugie polecenie przekształca wyjście muti-line w pojedynczy wiersz za pomocą XARGS.

$ ls -1 *.sh $ ls -1 *.sh | Xargs 
Uruchom polecenia za pomocą Xargs

Aby policzyć liczbę linii/słów/znaków w każdym pliku na liście, użyj poniższych poleceń.

$ ls *.sh | xargs wc -l #Count Liczba linii w każdym pliku $ ls *.sh | xargs wc -w #Count Liczba słów w każdym pliku $ ls *.sh | xargs wc -c #Count Liczba znaków w każdym pliku $ ls *.sh | Xargs WC #Count Linie, słowa i znaki w każdym pliku 
Policz słowa plików za pomocą Xargs

Poniższe polecenie znajduje i rekurencyjnie usuwa nazwany katalog Wszystko W obecnym katalogu.

$ znajdź . -nazwa "Wszystko„-Type d -print0 | xargs -0 /bin /rm -rf”  ” 

Polecenie Znajdź z opcją -print0 Działanie umożliwia drukowanie pełnej ścieżki katalogu na standardowym wyjściu, a następnie znak zerowy i -0 Xargs Flaga zajmuje się przestrzenią w nazwach plików.

Możesz znaleźć inne praktyczne Polecenie Xargs Przykłady użytkowania w tych artykułach:

  • Jak skopiować plik do wielu katalogów w Linux
  • Zmień nazwę wszystkich plików i nazw katalogów na małe litery w Linux
  • 4 sposoby na przeliczenie PNG na JPG i odwrotnie
  • 3 sposoby usuwania wszystkich plików w katalogu oprócz jednego lub kilku plików z rozszerzeniami

Jak używać TEE z poleceniami w Linux

Ten przykład pokazuje, jak wysłać wyjście polecenia do standardowego wyjścia i zapisać je w pliku; Poniższe polecenie pozwala wyświetlić najwyższe procesy działające według najwyższego użycia pamięci i procesora w Linux.

$ ps -eo CMD, PID, PPID,%MEM,%CPU - -SORT = -%MEM | głowa | TEE TOPPROCS.txt $ cat topprocs.tekst 
Zapisz wyjście polecenia na pliku

Aby dołączyć dane w istniejącym pliku, przekazać -A flaga.

$ ps -eo CMD, PID, PPID,%MEM,%CPU - -SORT = -%MEM | głowa | TEE -A TOPPROCS.tekst 

Więcej informacji na temat trójnik I Xargs Strony człowieka.

$ man xargs $ man tee 

To wszystko! Nie zapomnij sprawdzić naszego specjalnego artykułu: A - Z Linux Polecenia - Przegląd z przykładami.

W tym artykule opisaliśmy, jak generować wiersze poleceń za pomocą rurociągów; xargs i polecenia tee. Możesz zadawać wszelkie pytania lub dzielić się przemyśleniami za pośrednictwem poniższego formularza opinii.