Come usare Xargs su Linux

Come usare Xargs su Linux
Xargs è uno strumento di riga di comando. Se si desidera reindirizzare l'output di un comando come argomento di un altro comando, allora Xargs è lo strumento per te. È uno strumento molto utile per fare facilmente un sacco di cose sulla riga di comando. In questo articolo, ti mostrerò come usare Xargs su Linux. Quindi iniziamo.

Come funziona Xargs:

Il formato in cui usi il comando Xargs è:

$ Command1 | Xargs Command2

Puoi anche modificare il comportamento di Xargs con alcune opzioni. In tal caso, il formato del comando Xargs sarà:

$ Command1 | Xargs [Options] Command2

Qui, l'output del comando1 sarà usato come argomento di comando2. L'output di comando1 è suddiviso in molti argomenti di Xargs a seconda di un personaggio chiamato Delimiter. Quindi, Xargs esegue il comando comando2 per ciascuno di questi argomenti e tale argomento viene approvato come argomento del comando comando2.

Ad esempio, diciamo, l'output di comando1 è come segue:

Valore1 Valore2 Valore3

Diciamo, il personaggio delimitatore lo è spazio. Ora, l'output di comando1 sarà suddiviso in 3 argomenti, valore1, valore2, E valore3.

Ora, Xargs esegue il comando comando2 Per ciascuno dei 3 argomenti una volta.

$ comando2 valore1
$ comando2 valore2
$ comando2 valore3

Qui, valore1, valore2, E valore3 sono gli argomenti analizzati da Xargs dall'output del comando comando1.

È possibile ottenere lo stesso effetto usando loop in uno script di shell. Ma Xargs è solo un modo più semplice per fare le cose senza loop, specialmente sulla riga di comando.

Per impostazione predefinita, il delimitatore di Xargs è il carattere NEWLINE/SPACE. Ma puoi cambiare il personaggio delimitatore con il -D O -delimitatore Opzione di Xargs.

Per impostazione predefinita, Xargs lavora con un argomento alla volta. Se vuoi eseguire il comando comando2 con più argomenti dall'output del comando comando1, Quindi puoi usare il -N O -max-args Opzione di Xargs. A volte, dovrai dire a Xarg in particolare di lavorare con una discussione alla volta con il -N O -max-args opzione.

Puoi anche aggiungere o preparare altre stringhe agli argomenti passati al comando comando2 usando il -IO Opzione di Xargs.

Ci sono molte altre opzioni di Xargs, ma queste 3 sono quelle più importanti e utili. Quindi, tratterò solo questi 3 argomenti di Xargs in questo articolo.

È abbastanza blabbering. Facciamo alcuni esempi.

Esempio 1: creazione e rimozione di file elencati in un file di testo

Diciamo che hai un elenco di fileNamme in un file di testo File.TXT.

Puoi vedere il contenuto del file di testo File.TXT Come mostrato nello screenshot seguente.

$ cat file.TXT

Ora puoi creare tutti i file elencati in File.TXT file di testo usando il file tocco comando con Xargs come segue:

$ cat file.txt | Xargs tocco

Come puoi vedere, i file vengono creati come elencati in File.TXT.

Ora, diciamo, vuoi rimuovere i file elencati nel File.TXT file di testo. Puoi usare il Rm comando con Xargs come segue:

$ cat file.txt | XARGS RM -V

Solo i file elencati in File.TXT Il file viene rimosso come puoi vedere nello screenshot seguente.

Questo è un esempio molto semplice di Xargs.

Esempio 2: reindirizzare stdout a comandi che non supportano il tubo

È possibile reindirizzare la stima di un comando comando1 Come la stdin di un altro comando comando2 se comando comando2 Supporta il tubo Linux. Ma se il comando non supporta il tubo, non sarai in grado di farlo.

Ad esempio, il eco Il comando non supporta il tubo. Quindi, il seguente comando non stampa nulla come puoi vedere nello screenshot qui sotto.

$ data | eco

Il comando Xargs può aiutarti a reindirizzare la stdout di comando1 (in questo caso data) alla stdin di comando2 (in questo caso eco) come puoi vedere nello screenshot qui sotto.

$ data | Xargs Echo

Esempio 3: modifica del delimitatore di Xargs

Qui, ho stampato una stringa 123-456-7890 (un numero di telefono fittizio) usando Xargs. Come puoi vedere, l'intero output viene trattato come un singolo argomento e Xargs esegue il eco comando solo una volta.

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

Qui, ho cambiato il delimitatore - usando il -D Opzione di Xargs. Come puoi vedere, l'output 123-456-7890 è ora trattato come 3 argomenti diversi 123, 456, E 7890.

$ echo -n "123-456-789" | XARGS -N 1 -D -Echo

Esempio 4: Apprendimento o preparazione degli argomenti di Xargs

È possibile aggiungere (aggiungere alla fine dell'argomento) o preparare (aggiungere alla parte anteriore dell'argomento) stringa all'argomento passato al comando comando2 Usando Xargs. Prima di mostrarti come farlo, ti mostrerò come usare il -IO Opzione di Xargs.

IL -IO L'opzione di Xargs consente di definire un simbolo per l'argomento Xargs che viene passato al comando comando2. Funziona proprio come una variabile.

Per esempio,

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

Qui, -i l'opzione definisce Come simbolo per l'argomento su cui Xargs sta attualmente lavorando. Una volta il simbolo è definito, il simbolo può essere usato per passare l'argomento al comando comando2, Quale (il simbolo ) sarà sostituito dal valore dell'argomento.

Ora, per aggiungere la stringa .TXT (Diciamo) Ad ogni argomento, puoi usare Xargs come segue:

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

Allo stesso modo, puoi preparare la stringa Ciao (Diciamo) A ogni argomento come segue:

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

Esempio 5: modifica delle estensioni di file specifici

Questo è un po 'complicato. Ma spiegherò come funziona. Non preoccuparti.

Diciamo che hai alcuni file nella tua directory di lavoro corrente con diverse estensioni di file. Ora, vuoi cambiarli tutti in png estensione.

È possibile modificare l'estensione del file di tutti i file nella directory di lavoro corrente in PNG con Xargs come segue:

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

Come puoi vedere, tutta l'estensione del file è cambiata in PNG.

Qui, Xargs avvia una shell bash e esegue il comando bash

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

Primo, File = Assegna il simbolo valore, che è il nome file (il valore dell'argomento di Xargs) a FILE Shell variabile.

Poi, MV Il comando viene utilizzato per modificare l'estensione del file.

IL $ File La variabile Shell contiene il nome file originale.

$ File %%.* Rimuove l'estensione del nome file (incluso . carattere) e poi .png La stringa viene aggiunta al nome del file spogliato.

Xargs può fare cose molto più complesse. Continua a provare cose nuove con Xargs. Il cielo è il tuo limite.

Se hai bisogno di aiuto su Xargs, puoi controllare la pagina Man di Xargs come segue:

$ MAN XARGS

Quindi, è così che usi Xargs su Linux. Grazie per aver letto questo articolo.