Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Ausführliche Erläuterung der verschiedenen Verwendungsmöglichkeiten von xargs-Befehlstechniken unter Linux

Ausführliche Erläuterung der verschiedenen Verwendungsmöglichkeiten von xargs-Befehlstechniken unter Linux

黄舟
黄舟Original
2017-05-28 11:39:311696Durchsuche

xargs ist ein Filter zum Übergeben von Parametern an Befehle und außerdem ein Tool zum Kombinieren mehrerer Befehle. Der folgende Artikel stellt Ihnen hauptsächlich die relevanten Informationen zur Verwendung des Befehls xargs unter Linux vor. Schauen wir uns den Editor an.

Vorwort

Der xargs-Befehl formatiert die empfangenen Daten neu und stellt sie dann als Parameter für andere Befehle bereit. xargs wird unten vorgestellt Schauen Sie sich verschiedene Techniken zur Verwendung von Befehlen an.

1. Mehrzeilige Eingabe in einzeilige Eingabe umwandeln:

[root@host1 test]# echo -e "1 2 3 4 5 \n6 7 8 \n9 10 11 12" >example.txt
[root@host1 test]# cat example.txt 
1 2 3 4 5 
6 7 8 
9 10 11 12
[root@host1 test]# cat example.txt |xargs 
1 2 3 4 5 6 7 8 9 10 11 12

Einzeilige Eingabe in mehrzeilige Ausgabe umwandeln :

[root@host1 test]# cat example.txt | xargs -n 3
1 2 3
4 5 6
7 8 9
10 11 12

Passen Sie das Trennzeichen für die Konvertierung an (das Standardtrennzeichen ist ein Leerzeichen):

[root@host1 test]# echo "Hello:Hello:Hello:Hello" | xargs -d : -n 2
Hello Hello
Hello Hello

2. Verwenden Sie es im Skript:

[root@host1 test]# cat echo.sh 
#!/bin/bash
echo $* '^-^'

Wenn Parameter an echo.sh übergeben werden, werden sie ausgedruckt und mit „^-^“ beendet:

[root@host1 test]# echo -e "Tom\nHarry\nJerry\nLucy" > args.txt
[root@host1 test]# cat args.txt | xargs bash echo.sh 
Tom Harry Jerry Lucy ^-^
[root@host1 test]# cat args.txt | xargs -n 2 bash echo.sh 
Tom Harry ^-^
Jerry Lucy ^-^

Im obigen Beispiel haben wir Fügen Sie die Parameterquellen in die Datei args.txt ein, aber zusätzlich zu diesen Parametern benötigen wir auch einige feste Parameter, wie zum Beispiel:

[root@host1 test]# bash echo.sh Welcome Tom 
Welcome Tom ^-^

Während der Ausführung des obigen Befehls ist Tom Variablen und der Rest Konstanten sind, können wir die Argumente aus „args.txt“ extrahieren und sie dem Befehl wie folgt bereitstellen:

[root@host1 test]# bash echo.sh Welcome Tom 
[root@host1 test]# bash echo.sh Welcome Herry
[root@host1 test]# bash echo.sh Welcome Jerry
[root@host1 test]# bash echo.sh Welcome Lucy

Dabei Mal müssen wir den Befehl -I in xargs verwenden:

[root@host1 test]# cat args.txt | xargs -I {} bash echo.sh Welcome {} 
Welcome Tom ^-^
Welcome Harry ^-^
Welcome Jerry ^-^
Welcome Lucy ^-^

-I {}, um die Ersetzung von string für jeden Befehlsparameter, den String {}, anzugeben. Wird durch die aus stdin gelesenen Parameter ersetzt.

Wenn -I verwendet wird, wird der Befehl in einer -Schleife ausgeführt. Wenn 4 Parameter vorhanden sind, wird der Befehl zusammen mit {} ausgeführt wird viermal ausgeführt und {} wird bei jeder Ausführung durch die entsprechenden Parameter ersetzt.

3. Verwendung mit find

xargs und find sind eine sehr gute Kombination, aber wir verwenden sie normalerweise falsch B.:

[root@host1 test]# find . -type f -name "*.txt" -print | xargs rm -f

Es ist gefährlich, manchmal Dateien zu löschen , die nicht gelöscht werden müssen. Wenn der Dateiname ein Leerzeichen (') enthält. '), dann geht xargs wahrscheinlich davon aus, dass es sich um Trennzeichen handelt (z. B. wird file text.txt von xargs mit file und text.txt verwechselt).

Wenn wir die Ausgabe von find als Eingabe für xargs verwenden möchten, müssen wir -print0 mit find verwenden, um mit den Zeichen null(' zu enden.

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung der verschiedenen Verwendungsmöglichkeiten von xargs-Befehlstechniken unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn