Jak używać Xargs w Linux

Jak używać Xargs w Linux
Xargs jest narzędziem wiersza poleceń. Jeśli chcesz przekierować dane wyjściowe polecenia jako argumentu innego polecenia, to Xargs jest narzędziem dla Ciebie. Jest to bardzo przydatne narzędzie do łatwego robienia wielu rzeczy na wierszu poleceń. W tym artykule pokażę Ci, jak używać Xargs w Linux. Więc zacznijmy.

Jak działa Xargs:

Format, w którym używasz polecenia Xargs, to:

$ Command1 | Xargs Command2

Możesz także zmodyfikować zachowanie XARGS za pomocą niektórych opcji. W takim przypadku format polecenia Xargs będzie:

$ Command1 | xargs [opcje] Command2

Tutaj, wyjście polecenie1 będzie używany jako argument Command2. Wyjście polecenie1 jest podzielony na wiele argumentów przez Xargs w zależności od postaci zwanej delimiter. Następnie Xargs uruchamia polecenie Command2 dla każdego z tych argumentów i ten argument jest przekazywany jako argument polecenia Command2.

Na przykład, powiedzmy, wyjście polecenie1 następująco:

wartość1 Wartość2 Wartość3

Powiedzmy, że postać ogranicznika jest przestrzeń. Teraz wyjście polecenie1 zostanie podzielony na 3 argumenty, wartość 1, wartość2, I wartość3.

Teraz Xargs uruchamia polecenie Command2 dla każdego z 3 argumentów raz.

$ command2 wartość1
$ command2 wartość2
$ command2 wartość3

Tutaj, wartość 1, wartość2, I wartość3 są argumentami przeanalizowanymi przez Xargs na podstawie wyjścia polecenia polecenie1.

Możesz osiągnąć ten sam efekt za pomocą pętli w skrypcie powłoki. Ale Xargs to po prostu łatwiejszy sposób na robienie rzeczy bez pętli, szczególnie na wierszu poleceń.

Domyślnie ogranicznik XARGS to newline/przestrzenny znak. Ale możesz zmienić postać ogranicznika za pomocą -D Lub -SYMITER Opcja XARGS.

Domyślnie Xargs pracuje z jednym argumentem na raz. Jeśli chcesz uruchomić polecenie Command2 z wieloma argumentami z wyjścia polecenia polecenie1, Następnie możesz użyć -N Lub -Max-Args Opcja XARGS. Czasami będziesz musiał powiedzieć Xargs specjalnie do pracy z jednym argumentem na raz z -N Lub -Max-Args opcja.

Możesz także dołączyć lub przygotować inne ciągi do argumentów przekazanych do polecenia Command2 używając -I Opcja XARGS.

Istnieje wiele innych opcji XARG, ale te 3 są najważniejsze i przydatne. Tak więc w tym artykule omówię tylko te 3 argumenty Xargs.

To wystarczy. Przejrzyjmy kilka przykładów.

Przykład 1: Tworzenie i usuwanie plików wymienionych w pliku tekstowym

Powiedzmy, że masz listę nazw plików w pliku tekstowym akta.tekst.

Możesz zobaczyć zawartość pliku tekstowego akta.tekst jak pokazano na zrzucie ekranu poniżej.

Pliki $ cat.tekst

Teraz możesz utworzyć wszystkie pliki wymienione w akta.tekst Plik tekstowy za pomocą dotykać polecenie z Xargs następująco:

Pliki $ cat.txt | Xargs dotyk

Jak widać, pliki są tworzone jako wymienione w akta.tekst.

Powiedzmy teraz, że chcesz usunąć pliki wymienione w akta.tekst plik tekstowy. Możesz użyć Rm polecenie z Xargs następująco:

Pliki $ cat.txt | XARGS RM -V

Tylko pliki wymienione w akta.tekst plik są usuwane, jak widać na zrzucie ekranu poniżej.

To bardzo prosty przykład Xargs.

Przykład 2: Przekieruj stdout do poleceń, które nie obsługują rury

Możesz przekierować stadout polecenia polecenie1 jako stdin innego polecenia Command2 Jeśli polecenie Command2 Obsługuje rurę Linux. Ale jeśli polecenie nie obsługuje rury, nie będziesz w stanie tego zrobić.

Na przykład Echo polecenie nie obsługuje rury. Więc następujące polecenie niczego nie wydrukuje, jak widać na zrzucie ekranu poniżej.

$ data | Echo

Polecenie Xargs może pomóc w przekierowaniu stadout polecenie1 (w tym przypadku data) do stdina Command2 (w tym przypadku Echo) Jak widać na zrzucie ekranu poniżej.

$ data | Xargs Echo

Przykład 3: Zmiana ogranicznika XARGS

Tutaj wydrukowałem ciąg 123-456-7890 (manekinowy numer telefonu) za pomocą Xargs. Jak widać, całe wyjście jest traktowane jako pojedynczy argument, a XARGS uruchamia Echo polecenie tylko raz.

$ echo -n 123-456-7890 | Xargs Echo

Tutaj zmieniłem ogranicznik na - używając -D Opcja XARGS. Jak widać, wyjście 123-456-7890 jest teraz traktowany jako 3 różne argumenty 123, 456, I 7890.

$ echo -n "123-456-789" | xargs -n 1 -d -echo

Przykład 4: Dołączenie lub przygotowanie argumentów Xargs

Możesz dołączyć (dodaj do końca argumentu) lub przygotować (dodaj do przodu argumentu) do argumentu przekazanego do polecenia Command2 za pomocą Xargs. Zanim pokażę ci, jak to zrobić, pokażę, jak korzystać z -I Opcja XARGS.

-I Opcja XARGS pozwala zdefiniować symbol argumentu XARGS, który jest przekazywany do polecenia Command2. Działa jak zmienna.

Na przykład,

$ echo -n "123-456-789" | xargs -d --n 1 -i echo

Tutaj opcja -i definiuje jako symbol argumentu, nad którym obecnie pracuje Xargs. Kiedyś symbol jest zdefiniowany, symbol można użyć do przekazania argumentu do polecenia Command2, który (symbol ) zostanie zastąpiona wartością argumentu.

Teraz, aby dołączyć ciąg .tekst (Powiedzmy) Do każdego argumentu możesz użyć Xargs w następujący sposób:

$ echo -n "123-456-789" | xargs -d --n 1 -i echo .tekst

W ten sam sposób możesz przygotować ciąg Witam (Powiedzmy) do każdego argumentu w następujący sposób:

$ echo -n "123-456-789" | xargs -d --n 1 -i echo "Hello "

Przykład 5: Zmiana rozszerzeń określonych plików

Ten jest trochę trudny. Ale wyjaśnię, jak to działa. Nie martw się.

Powiedzmy, że masz kilka plików w bieżącym katalogu roboczym z różnymi rozszerzeniami plików. Teraz chcesz je wszystkie zmienić na png rozszerzenie.

Możesz zmienić rozszerzenie pliku wszystkich plików w bieżącym katalogu roboczym na PNG z XARGS w następujący sposób:

$ ls | xargs -i bash -c 'plik = && mv -v $ plik $ plik %%.*.png '

Jak widać, wszystkie rozszerzenie pliku zmieniło się na PNG.

Tutaj Xargs uruchamia podwodność bash i uruchamia polecenie bash

File = && mv -v $ plik $ file %%.*.png

Pierwszy, File = przypisuje symbol wartość, która jest nazwą pliku (wartość argumentu Xargs) do PLIK Zmienna powłoki.

Następnie, mv Polecenie służy do zmiany rozszerzenia pliku.

$ Plik Zmienna powłoki zawiera oryginalną nazwę pliku.

$ Plik %%.* usuwa rozszerzenie nazwy pliku (w tym . postać), a następnie .png String jest dołączany do rozebranej nazwy pliku.

Xargs mogą robić o wiele bardziej złożone rzeczy. Wypróbuj nowe rzeczy z Xargs. Niebo jest twoim limitem.

Jeśli potrzebujesz pomocy na XARGS, możesz sprawdzić stronę Xargs w następujący sposób:

$ man xargs

Tak więc używasz Xargs w Linux. Dziękujemy za przeczytanie tego artykułu.