Xargs dla początkujących z przykładami
- 4965
- 1601
- Tacjana Karpiński
Za pomocą Xargs
, Opisane w podręczniku Linux Xargs jako narzędzie, które buduje i wykonuje wiersze poleceń ze standardowego wejścia, raz może wywierać znaczną ilość dodatkowej zasilania nad dowolnym innym poleceniem wykonanym w wierszu poleceń Bash. Zasadniczo, Xargs
przyjmie wyjście z dowolnego innego narzędzia i użyje go jako własnego wejścia do dalszego przetwarzania i działania (stąd odniesienie do wykonywania wierszy poleceń w instrukcji). Jeśli jest to twoje pierwsze tygodnie lub miesiące z Xargs
, Albo dopiero zaczynasz, to najlepsze miejsce, w które możesz się dostać Xargs
.
W tym samouczku się nauczysz:
- Jak używać
Xargs
z wiersza poleceń w Bash - Jak
Xargs
Działa, co robi i jak go dobrze używać - Podstawowe przykłady użytkowania za pomocą
Xargs
z wiersza poleceń w Bash
Zastosowane wymagania i konwencje oprogramowania
Kategoria | Wymagania, konwencje lub wersja oprogramowania |
---|---|
System | Niezależny od rozkładu Linuksa |
Oprogramowanie | Wiersz poleceń Bash, system oparty na Linuksie |
Inny | Xargs Narzędzie jest domyślnie zawarte w skorupce Bash |
Konwencje | # - Wymaga, aby podane Linux -commands były wykonywane z uprawnieniami root bezpośrednio jako użytkownik root lub za pomocą sudo Komenda$-Wymaga wykonania podanych Commands jako zwykłego użytkownika niepewnego |
Przykład 1: Prosty start
Zanurzmy się w prosty Xargs
przykład:
$ echo '1'> 1 $ echo '2'> 2 $ echo '3'> 3 $ ls 1 2 3 $ ls | Xargs Cat 1 2 3
W tym przykładzie szybko utworzyliśmy 3 pliki, odzwierciedlając liczbę, a następnie przekierowując dane wyjściowe (przy użyciu za pomocą >
) do 3 poszczególnych plików wymienionych 1
Do 3
. Następnie sprawdziliśmy istnienie plików za pomocą LS
polecenie (listę katalogu listy).
W ostatnim poleceniu użyliśmy LS
i rurowe (za pomocą |
) Jest wyjście Xargs
. Po Xargs
polecenie wymieniliśmy nowe polecenie, które chcieliśmy Xargs
wykonać W przypadku jakiegokolwiek otrzymanego wkładu indywidualnie na wejście, w tym przypadku kot
(który wyświetla zawartość pliku).
Zasadniczo powyższe polecenie jest analogiczne z następującym zestawem poleceń (choć jeśli zawartość katalogu się zmieni, nie byłaby już analogiczna jako Xargs
po prostu zawiera nowe wpisy do katalogu):
$ cat 1 1 $ cat 2 2 $ cat 3 3
Przykład 2: Trochę bardziej złożone
$ ls -color = nigdy | xargs -i cat 1 2 3
Tutaj dodaliśmy kilka idiomów składni bash (idiom jest konstruktem/wyrażeniem języka), aby znacznie poprawić jakość i być może czytelność tego samego scenariusza jednolinowego, chociaż dane wyjściowe - w tym przypadku - pozostało takie samo.
-I
opcja Xargs
definiuje zastępować ciąg, który będzie używany wewnątrz polecenia XARGS do wstawienia, w punkcie, w którym ponownie używa się ciągła, otrzymane wejście i które dla każdego wejścia indywidualnie - i.mi. polecenie określone po Xargs
Polecenie zostanie wykonane dla każdego wejścia indywidualnie.
--kolor = nigdy
Dodatek sprawia, że wyjście generowane przez LS
polecenie (a zatem dane wejściowe do Xargs
polecenie) znacznie bezpieczniej.
Przykład 3: Wyjście buggy
W ostatnim przykładzie, który wprowadziliśmy --kolor = nigdy
Jako wskazana opcja. Spójrzmy na przykład tego, jak - bez tej opcji - możemy napotkać problemy:
$ mkdir 1 2 3 $ ls 1 2 3 $ ls | Xargs LS LS: Nie można uzyskać dostępu ”
Ciekawe wyjście 🙂 Więc co się tutaj stało?
Najpierw stworzyliśmy trzy katalogi, 1
Do 3
, a następnie sprawdził ich stworzenie. Zwróć uwagę, że wyjście jest ciemnoniebieskie, dzięki uprzejmości kolorów powłoki bash, które są domyślnie konfigurowane na przykład Ubuntu.
Następnie wzięliśmy wynik LS
i przekazał to Xargs
co z kolei przekazało to z powrotem do LS
. Podobne do „Echo 1 | LS można się spodziewać. Ale to nie zadziałało! Zamiast tego otrzymaliśmy zestaw kodów kolorów backr. Każdy, kto widzi to po raz pierwszy, miałby trudności z powiązaniem go z kodami kolorów.
Dodanie prostej opcji --kolor = nigdy
odkażył LS
wyjście jako bardziej odpowiednie dane wejściowe dla Xargs
, a wyjście wygląda zgodnie z oczekiwaniami: dla katalogów 1
Do 3
, jako wyjście przez LS
polecenie, wymień zawartość (i.mi. podobny do LS 1; LS 2; LS3
).
Przykład 4: Parsowanie tekstu z Xargs i SED
$ echo -e '1 \ n2 \ n3'> test $ cat test 1 2 3 $ ls test $ ls -color = nigdy | xargs -i cat | SED | [2-3] | 0 | ' 1 0 0 $ ls -Color = nigdy | xargs -i cat | SED | [2-3] | 0 | ' |. xargs -i grep $ (ls) 1
Trochę trudniejszy przykład, ale wkrótce go zrozumiesz.
Pierwsze polecenie po prostu utworzyło plik z trzema wierszami (\N
tworzy nową linię i -mi
opcja echo umożliwia \N
być stosowane). Następnie wyprowadzamy zawartość pliku za pomocą kot
, i sprawdziłem, ile plików było obecnych za pomocą LS
(tylko jeden; test
Plik, który utworzyliśmy).
Następnie mamy nasze polecenie Juicy Xargs, które - jak wiecie z poprzednich przykładów - przyjmuje listę katalogu, wysyła ją Xargs
i wysyła zawartość każdego pliku za pomocą kot
. Wtedy mamy mały sed
polecenie, które zastępuje liczby 2
I 3
do 0. Wyjście to pełna zawartość pliku testowego, ale z 2
I 3
zmienić na 0
zgodnie z instrukcją.
Wreszcie bierzemy to samo polecenie i przekazujemy je do innego Xargs
. Pomyśl o tym w ten sposób; wizualnie (w twoim umyśle) zobacz 1
, 0
, 0
wyjście z poprzedniego polecenia (|
) do finału Xargs
bez poprzedniej złożoności. Zobacz, w jaki sposób możesz stopniowo budować bardzo złożone polecenia? To pokazuje także moc Xargs
Krótko mówiąc, choć jest możliwe znacznie więcej.
W ostatecznym dowództwie to przekazujemy 1
, 0
, 0
wyjść do Grep
, który będzie przeszukiwał zawartość $ (ls)
. $ ()
uruchamia subshell, wykonuje dowolne polecenie i wkłada dane wyjściowe tego polecenia w miejscu, w którym wywołano subshell. Innymi słowy, wykonujemy:
Grep „1” ./test grep „0” ./test grep „0” ./test
A wyniki są rzeczywiście zgodnie z oczekiwaniami; 1
Tylko, ponieważ w pliku nie było zer.
Wniosek
W tym artykule spojrzeliśmy na podstawy Xargs
polecenie i kilka przykładów tego, jak Xargs
Można użyć parsowania tekstu i manipulacji listą katalogów. Mój następny artykuł będzie bardziej zaawansowany Xargs
Zastosowanie, w tym dodatkowe przykłady.
Cieszyć się Xargs
i zostaw nam komentarz ze swoim najfajniejszym Xargs
Linie poleceń lub skrypty!
Powiązane samouczki Linux:
- Przykłady, jak używać polecenia XARGS w Linux
- Wielokrotne Xarg z przykładami
- Rzeczy do zainstalowania na Ubuntu 20.04
- Zagnieżdżone pętle w skryptach Bash
- Mastering Bash Script Loops
- Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
- Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
- Podstawowe polecenia Linux
- Polecenia Linux: Top 20 najważniejsze polecenia, które musisz…
- Kompleks Linux Bash One-Liner Przykłady