xargs je příkaz v UNIXu jako System, který čte položky ze standardního vstupu oddělený mezerami (které lze chránit dvojitými nebo jednoduchými uvozovkami nebo zpětným lomítkem) nebo novými řádky a provede příkaz (výchozí je /bin/echo) jednou nebo vícekrát s libovolnými počátečními argumenty následovanými položkami načtenými ze standardního vstupu. Prázdné řádky na standardním vstupu jsou ignorovány.
příkaz xargs je velmi praktický v kombinaci sjinými příkazy. Ve výchozím nastavení očekává vstup od STDIN .xargs se v podstatě používá k vylepšení výstupu počátečního příkazu a využití výstupu k prováděníčetných operací .
V tomto příspěvku probereme 11 praktických příkladů příkazu linux xargs
Příklad:1 Základní použití xargs
Zadejte xargs , bude od nás očekávat vstup, začněte psát s enterem na dalším řádku a poté stiskněte ctrl+d abyste viděli výstup, jak je uvedeno níže.
[email protected]:~$ xargs hello john this is me ( ctrl+d) hello john this is me [email protected]:~$home/Downloads#
Příklad:2 Použití oddělovačů v xargs (-d)
Zde určíme oddělovač pomocí volby -d , s \n jako oddělovač. Když stiskneme ctrl+d
, odešle řetězec zpět na obrazovku[[email protected] ~]# xargs -d\n Hi Welcome here Now press Ctrl+D Hi Welcome here Now press Ctrl+D [[email protected] ~]#
Příklad:3 Omezení výstupu na řádek (-n)
Můžeme omezit výstup podle požadavku pomocí volby -n v příkazu xargs, například pro zobrazení pouze 2 položek na řádek,
[email protected]:~$ echo a1 b2 c3 d4 e45 a1 b2 c3 d4 e5 [email protected]:~$ echo a1 b2 c3 d4 e5 | xargs -n 2 a1 b2 c3 d4 e5 [email protected]:~$
Příklad:4 Povolit výzvu uživatele před spuštěním (-p)
Pomocí možnosti -p v příkazu xargs bude uživatel před provedením vyzván y (znamená ano) a n (znamená ne) možnosti.
[email protected]:~$ echo a1 b2 c3 d4 e5 | xargs -p -n 2 /echo a1 b2 ?...y a1 b2 echo c3 d4 ?...y c3 d4 echo e5 ?...n [email protected]:~$ [email protected]:~$ echo a1 b2 c3 d4 e5 | xargs -p -n 2 /echo a1 b2 ?...y a1 b2 echo c3 d4 ?...y c3 d4 echo e5 ?...y e5 [email protected]:~$
Příklad:5 Mazání souborů pomocí find a xargs
Předpokládejme, že chceme odstranit soubory *.txt ze složky /tmp, spusťte následující příkaz
[email protected]:~$ find /tmp -type f -name '*.txt' | xargs rm
Poznámka: Vždy se doporučuje použít výše uvedenou kombinaci příkazu find a xargs k odstranění 1000+ souborů, protože to zabere méně času a méně prostředků systému.
Příklad:6 Pro vyhledávání použijte příkaz Xargs a grep
můžeme použít příkaz grep s xargs k filtrování konkrétního hledání z výsledku příkazu find. Příklad je uveden níže:
[email protected]:~$ find . -name "stamp" | xargs grep "country" country_name [email protected]:~$
Příklad:7 Zacházení s mezerou v názvech souborů
xargs si také poradí s mezerami v souborech pomocí print0 axargs -0 argumenty pro příkaz find.
[email protected]:~$ find /tmp -name "*.txt" -print0 | xargs -0 ls /tmp/abcd asd.txt /tmp/asdasd asdasd.txt /tmp/cdef.txt [email protected]:~$ find /tmp -name "*.txt" -print0 | xargs -0 rm [email protected]:~$
Příklad:8 Použití xargs s příkazem cut
Pro ukázku nejprve vytvořte cars.txt s níže uvedeným obsahem:
[email protected]:~$ cat cars.txt Hundai,Santro Honda,Mobilio Maruti,Ertiga Skoda,Fabia
Zobrazení dat v prvním sloupci jak je uvedeno níže.
[email protected]:~$ cut -d, -f1 cars.txt | sort | xargs Honda Hundai Maruti Skoda [email protected]:~$
Příklad:9 Spočítejte počet řádků v každém souboru
[email protected]:~$ ls -1 *.txt | xargs wc -l 4 cars.txt 13 trucks.txt 17 total [email protected]:~$
Příklad:10 Přesunutí souborů do jiného umístění
[email protected]:~$ pwd /home/linuxtechi [email protected]:~$ ls -l *.sh -rw-rw-r-- 1 linuxtechi linuxtechi 0 Sep 15 22:53 abcde.sh -rw-rw-r-- 1 linuxtechi linuxtechi 0 Sep 15 22:53 abcd.sh -rw-rw-r-- 1 linuxtechi linuxtechi 0 Sep 15 22:53 fg.sh [email protected]:~$ sudo find . -name "*.sh" -print0 | xargs -0 -I {} mv {} backup/ [email protected]:~$ ls -ltr backup/ total 0 -rw-rw-r-- 1 linuxtechi linuxtechi 0 Sep 15 22:53 abcd.sh -rw-rw-r-- 1 linuxtechi linuxtechi 0 Sep 15 22:53 abcde.sh -rw-rw-r-- 1 linuxtechi linuxtechi 0 Sep 15 22:53 fg.sh [email protected]:~$
Příklad:11 Nahraďte řetězec v příkazu Xargs (-i)
Pokud spustíme níže uvedený příkaz, vytvoří se tři soubory a, b &c v aktuálním pracovním adresáři
[email protected]:~$ printf "a\nb\nc\n" | xargs touch
Pokud chcete vytvořit a.txt, b.txt a c.txt, použijte parametr -i v příkazu xargs, nahradí řetězec ‘a s a.txt a tak dále
[email protected]:~$ printf "a\nb\nc\n" | xargs -i touch {}.txt
To je vše z tohoto článku, doufám, že tyto příklady příkazů xargs jsou pro vás informativní. Neváhejte se podělit o své názory a komentáře.