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

黄舟
Freigeben: 2017-05-28 11:39:31
Original
1658 Leute haben es durchsucht

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

2. Verwenden Sie es im Skript:

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

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 ^-^
Nach dem Login kopieren

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 ^-^
Nach dem Login kopieren

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
Nach dem Login kopieren

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 ^-^
Nach dem Login kopieren

-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
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!