Xargs dla początkujących z przykładami
- 5021
- 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ć
Xargsz wiersza poleceń w Bash - Jak
XargsDziała, co robi i jak go dobrze używać - Podstawowe przykłady użytkowania za pomocą
Xargsz wiersza poleceń w Bash
Xargs dla początkujących z przykładami 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:
Wyjście LS jest skażone po użyciu XARGS, wymagające użycia -koloru = nigdy nie opcji LS $ 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