xargs è un comando in sistema simile a UNIX che legge gli elementi dallo input standard delimitato da spazi (che possono essere protetti con virgolette doppie o singole o una barra rovesciata) o newline, ed esegue il comando (l'impostazione predefinita è /bin/echo) una o più volte con qualsiasi argomento iniziale seguito da elementi letti dallo standard input. Le righe vuote sullo standard input vengono ignorate.
Il comando xargs è molto utile se combinato con altri comandi. Per impostazione predefinita, si aspetta input da STDIN .xargs è fondamentalmente utilizzato per migliorare l'output del comando iniziale e utilizzare l'output per eseguire numerose operazioni .
In questo post discuteremo 11 esempi pratici del comando xargs di Linux
Esempio:1 Utilizzo di base di xargs
Digita xargs , si aspetterà un input da noi, inizia a digitare con invio per la riga successiva e quindi fai un ctrl+d per vedere l'output come di seguito.
[email protected]:~$ xargs hello john this is me ( ctrl+d) hello john this is me [email protected]:~$home/Downloads#
Esempio:2 uso di delimitatori in xargs (-d)
Qui specifichiamo un delimitatore usando l'opzione -d , con \n come delimitatore. Fa eco alla stringa sullo schermo quando premiamo ctrl+d
[[email protected] ~]# xargs -d\n Hi Welcome here Now press Ctrl+D Hi Welcome here Now press Ctrl+D [[email protected] ~]#
Esempio:3 Limitazione dell'output per riga (-n)
Possiamo limitare l'output secondo i requisiti usando l'opzione -n nel comando xargs, ad esempio per visualizzare solo 2 elementi per riga,
[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]:~$
Esempio:4 Abilita prompt utente prima dell'esecuzione (-p)
Utilizzando l'opzione -p nel comando xargs , all'utente verrà richiesto prima dell'esecuzione con y (significa sì) e n (significa no) opzioni.
[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]:~$
Esempio:5 Eliminazione di file utilizzando find e xargs
Supponiamo di voler eliminare i file *.txt dalla cartella /tmp, eseguire il comando seguente,
[email protected]:~$ find /tmp -type f -name '*.txt' | xargs rm
Nota: Si consiglia sempre di utilizzare la combinazione di cui sopra del comando find e xargs per eliminare oltre 1000 file poiché richiede meno tempo e meno risorse del sistema.
Esempio:6 usa Xargs e il comando grep per la ricerca
possiamo usare il comando grep con xargs per filtrare la ricerca particolare dal risultato del comando find. Un esempio è mostrato di seguito:
[email protected]:~$ find . -name "stamp" | xargs grep "country" country_name [email protected]:~$
Esempio:7 Gestire lo spazio nei nomi dei file
xargs può anche gestire gli spazi nei file usando print0 e xargs -0 argomenti per trovare il comando.
[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]:~$
Esempio:8 Usa xargs con il comando taglia
Per la dimostrazione, creiamo prima un cars.txt con i seguenti contenuti:
[email protected]:~$ cat cars.txt Hundai,Santro Honda,Mobilio Maruti,Ertiga Skoda,Fabia
Per visualizzare i dati nella prima colonna come mostrato di seguito.
[email protected]:~$ cut -d, -f1 cars.txt | sort | xargs Honda Hundai Maruti Skoda [email protected]:~$
Esempio:9 conta il numero di righe in ogni file
[email protected]:~$ ls -1 *.txt | xargs wc -l 4 cars.txt 13 trucks.txt 17 total [email protected]:~$
Esempio:10 sposta i file in una posizione diversa
[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]:~$
Esempio:11 Sostituisci String nel comando Xargs (-i)
Se eseguiamo il comando seguente, verranno creati tre file a, b e c nella directory di lavoro corrente
[email protected]:~$ printf "a\nb\nc\n" | xargs touch
Se desideri creare a.txt, b.txt e c.txt, usa il parametro -i nel comando xargs, sostituirà una stringa 'a ' con a.txt e così via
[email protected]:~$ printf "a\nb\nc\n" | xargs -i touch {}.txt
Questo è tutto da questo articolo, spero che questi esempi di comandi xargs ti siano informativi. Sentiti libero di condividere feedback e commenti.