1. Funktion: xargs kann die durch Leerzeichen oder Zeilenumbrüche getrennten Daten in stdin in durch Leerzeichen getrennte Argumente umwandeln und an andere Befehle übergeben. Da Leerzeichen als Trennzeichen verwendet werden, kann es sein, dass xargs Dateien oder Substantive mit anderen Bedeutungen falsch einschätzt, wenn diese Leerzeichen enthalten. Einfach ausgedrückt ist xargs ein Filter, der Parameter an andere Befehle übergibt und eine der wichtigen Komponenten zum Erstellen einzeiliger Befehle ist. Der Grund für die Verwendung von xargs liegt darin, dass viele Befehle die Verwendung von Pipes | zur Übergabe von Parametern nicht unterstützen, zum Beispiel: find /sbin -perm +700 |ls -l //Dieser Befehl ist falsch, da die Standardeingabe nicht als Parameter für ls verwendet werden kann find /sbin -perm +700 |xargs ls -l //Das ist richtig 2. Befehlsformat xargs [Optionen] [Befehl] 3. Beschreibung der Option: -0: Wenn die Eingabe-Standardeingabe Sonderzeichen wie Backquote `, Backslash \, Leerzeichen usw. enthält, kann xargs sie auf normale Zeichen zurücksetzen. Die Standardoption für xargs. -e <flag>,-E <flag>,--eof=<eof-str>: eof bedeutet Ende der Dateiendung. Flag kann eine Zeichenfolge oder mehrere durch Leerzeichen getrennte Zeichenfolgen sein. Wenn xargs dieses Flag analysiert, funktioniert es nicht mehr. Siehe Beispiel 2. -p: Den Benutzer jedes Mal fragen, wenn ein Argument ausgeführt wird. -n <num>: Gibt die Anzahl der Argumente an, die bei der Ausführung des Befehls verwendet werden (angegeben durch num). Standardmäßig werden alle Parameter verwendet. -t: Zuerst den Befehl drucken und dann ausführen. -a <Datei>: Aus Datei als sdtin lesen. -i[replace-str]: Weist xargs an, {} anstelle der von der Standardeingabe gelesenen Parameter zu verwenden. Sie können die Ersatzzeichenfolge replace-str angeben. Wenn nicht angegeben, ist der Standardwert {}. Es wird empfohlen, -I zu verwenden, da dies dem POSIX-Standard entspricht. -I [replace-str]: Weist jeden von xargs ausgegebenen Parameter dem nachfolgenden Befehl separat zu. Der Parameter muss durch die angegebene Ersetzungszeichenfolge replace-str ersetzt werden. Das heißt, replace-str kann nicht als Standard verwendet werden und muss explizit angegeben werden. Symbole wie {} $ @ können verwendet werden. Seine Hauptfunktion besteht darin, die Parameterposition anzupassen, wenn nach dem xargs-Befehl mehrere Parameter vorhanden sind. Beispiel: find . -name "*.txt"|xargs -I {} cp {} /tmp/{}.bak. -r: oder --no-run-if-empty, wenn die Eingabe von xargs leer ist, wird xargs gestoppt und es besteht keine Notwendigkeit, nachfolgende Befehle auszuführen. -r ist die Standardoption von xargs. -s <num>: Die maximale Anzahl von Zeichen in der Befehlszeile, die sich auf die maximale Anzahl von Zeichen in der Befehlszeile nach xargs bezieht, einschließlich Befehlen, Leerzeichen und Zeilenumbrüchen. Jeder Parameter wird separat an den auf xargs folgenden Befehl übergeben. Siehe Beispiel 4. -L <Zeilennummer>: Legt die maximale Anzahl von Zeilen in der Standardeingabe als Parameter für jede Ausführung des Befehls fest. Siehe Beispiel 5. -d <delim>, --delimiter=<delim>: xargs verwendet standardmäßig Zeilenumbrüche und Leerzeichen als Trennzeichen, wenn die Standardeingabe verarbeitet wird. Das Trennzeichen für Ausgabeargumente ist ein Leerzeichen. Ändern Sie hier das Trennzeichen, wenn xargs die Standardeingabe verarbeitet. -x: bedeutet eXit, was hauptsächlich mit -s verwendet wird. Wenn die Anzahl der Zeichen in der Befehlszeile größer ist als der durch -s angegebene Wert, wird xargs beendet. -P: Ändert die maximale Anzahl von Prozessen. Der Standardwert ist 1. Wenn er 0 ist, bedeutet dies, dass so viele Prozesse wie möglich vorhanden sind. Diese Option wird selten genutzt und ihre Verwendung ist derzeit unklar. 4. Anwendungsbeispiele (1) Setzen Sie die Sonderzeichen der Shell auf normale Zeichen zurück. [b3335@MIC ~]$ echo '`0123`4 56789'|xargs -t echo echo `0123`4 56789 `0123`4 56789 Wenn Sie die folgenden Operationen direkt ausführen, erhalten Sie eine Fehlermeldung, dass der Befehl 01234 nicht gefunden werden kann, da die Backquotes 01234 als Befehl in der Shell ausführen würden, 01234 aber kein Befehl ist. -t bedeutet, den Befehl zuerst auszudrucken und dann auszuführen. [b3335@MIC ~]$ echo `01234` 56789 -bash: 01234: Befehl nicht gefunden 56789 (2) Setzen Sie das Endzeichen beim Lesen von Parametern durch xargs so, dass es mit einem Komma endet. Hierbei ist zu beachten, dass es sich bei der Endmarkierung um ein eigenes, also durch Leerzeichen bzw. Zeilenumbrüche abgetrenntes Feld handeln muss. [b3335@MIC ~]$ echo 01234 , 56789|xargs -E "," 01234 (3) Wenn Sie Befehle wie rm und mv verwenden, um mehrere Dateien gleichzeitig zu bearbeiten, wird möglicherweise die Fehlermeldung „Argumentliste zu lang“ angezeigt. In diesem Fall können Sie xargs verwenden, um das Problem zu lösen. xargs separiert den String der Standardeingabe und übergibt ihn separat als Parameter an den nachfolgenden Befehl. Fügen Sie beispielsweise das Suffix zu allen Dateien im aktuellen Verzeichnis hinzu. ls | xargs -t -i mv {} {}.bak #Wählen Sie Dateien aus, die die Bedingungen erfüllen ls|grep -E "201701|201702|201703|201704|201705|201706|201707|201708|201709|201710" |xargs -i mv {} {}.bak (4) Legen Sie die maximale Anzahl von Zeichen in der Befehlszeile fest. Standardmäßig werden die Parameter zur Ausführung einzeln an den Befehl übergeben. [b3335@MIC-Test]$ echo "01234 56789"|xargs -t -s 11 Echo 01234 01234 Echo 56789 56789 (5) Legen Sie die Anzahl der Zeilen in der Standardeingabe fest, die jedes Mal als Befehlsparameter verwendet werden sollen. Standardmäßig werden alle Zeilen der Standardeingabe zu einer Zeile zusammengeführt und auf einmal zur Ausführung an den Befehl übergeben. [b3335@MIC-Test]$ echo -e "01234\n56789\n01234" | xargs -t -L 2 echo echo 01234 56789 01234 56789 Echo 01234 01234 (6) Geben Sie den Dateiinhalt durch Leerzeichen getrennt in der gleichen Zeile aus. //Liste den Inhalt der Datei cat test.txt auf abcd Abonnieren //Mehrere Eingabezeilen und eine Ausgabezeile: Katze test.txt | xargs abcdefghijklmno (7) In Kombination mit ps, grep, awk und kill wird der angegebene Prozess zwangsweise beendet ps -ef|grep spp|awk '{printf "%s ",$2}'|xargs kill -9 Befehlserklärung: Oben finden Sie detaillierte Informationen zur Verwendung des Linux-Befehls xargs. Weitere Informationen zum Linux-Befehl xargs finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Äußerst detaillierte Freigabe der MySQL-Nutzungsspezifikation
Zugehörige Dokumente Ein Teil dieses Artikels wir...
Hier verwende ich Samba (Filesharing-Dienst) v4.9...
Inhaltsverzeichnis 1. Docker-Installation auf dem...
Dieser Artikel stellt häufige Probleme von Xshell...
Die gebräuchlichste, am häufigsten verwendete und ...
Ich habe eine gute Idee gesehen und sie aufgezeic...
Eine At-Regel ist eine Deklaration, die Anweisung...
Grammatikregeln SELECT Spaltenname(n) FROM Tabell...
Wir können jsx/tsx-Dateien direkt erstellen Die P...
Detaillierte Erläuterung der Implementierungsmeth...
1. Voraussetzungen Wir verwenden zum Importieren ...
MySQL-Datenbank meldet FEHLER 1045 (28000): Zugri...
Dies scheint mit der neuen Version nicht mehr mög...
Das Anzeigen und Interpretieren von Informationen...
Anforderung: Die Seite muss ein Bild anzeigen, ab...