GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So verwenden Sie den Linux-xargs-Befehl

Einführung

Bestimmte Linux-Befehle nehmen Eingaben sowohl von der Standardeingabe (stdin) als auch als Befehlszeilenargument entgegen. Andere sind jedoch so konzipiert, dass sie die Eingabe nur als Argument akzeptieren. Um die Standardeingabe verarbeiten zu können, müssen diese Linux-Befehle die xargs verwenden Befehl.

In diesem Tutorial lernen Sie, wie Sie die xargs von Linux verwenden Befehl, um die Standardeingabe zu manipulieren und mit anderen Befehlen zu arbeiten.

Voraussetzungen

  • Ein System, auf dem Linux ausgeführt wird
  • Zugriff auf die Befehlszeile

Was ist der xargs-Befehl?

Die xargs Befehl erstellt und führt Befehle aus, die über die Standardeingabe bereitgestellt werden. Es nimmt die Eingabe und wandelt sie in ein Befehlsargument für einen anderen Befehl um. Diese Funktion ist besonders nützlich bei der Dateiverwaltung, wo xargs wird in Kombination mit rm verwendet , cp , mkdir , und andere ähnliche Befehle.

Verwendung des xargs-Befehls mit Beispielen

Bei alleiniger Verwendung xargs fordert den Benutzer auf, eine Textzeichenfolge einzugeben, die dann an echo übergeben wird Befehl.

Das Beispiel zeigt eine Beispieleingabe, gefolgt von der Ausgabe von echo Befehl.

Kombiniere xargs mit find

Der find-Befehl steht oft vor xargs in einer Rohrleitung. Verwenden Sie es, um eine Liste von Dateien zur weiteren Verarbeitung durch xargs bereitzustellen . Die Syntax sieht folgendermaßen aus:

find [location] -name "[search-term]" -type f | xargs [command]

Das obige Beispiel zeigt die Verwendung von find Befehl, um alle Dateien mit dem .sh zu finden Verlängerung. Die Liste der Dateien wird dann an xargs geleitet , die den rm verwendet Befehl, sie zu löschen.

Allerdings xargs enthält nicht automatisch Dateien, deren Namen Leerzeichen enthalten. Um auch diese Dateien einzuschließen, verwenden Sie -print0 Option für find , und -0 Option für xargs :

find [location] -name "[search-term]" -type f -print0 | xargs -0 [command]

rm löscht jetzt alle Dateien mit der .sh Erweiterung.

Xargs mit grep kombinieren

Verwenden Sie xargs mit dem Befehl grep, um in der Liste der Dateien, die von find bereitgestellt werden, nach einer Zeichenfolge zu suchen Befehl.

find . -name '[search-term]' | xargs grep '[string-to-find-in-files]'

Das obige Beispiel hat nach allen Dateien mit dem .txt gesucht -Erweiterung und leitete sie an xargs weiter , die dann grep ausführte befehle ihnen.

Xargs-Mehrfachbefehle

Um mehr als einen Befehl mit xargs auszuführen verwenden Sie das -I Möglichkeit. Die Syntax lautet:

[command-providing-input] | xargs -I % sh -c '[command-1] %; [command-2] %'

Im Beispiel der Inhalt von file4.txt wurden zuerst angezeigt. Dann mkdir erstellte einen Ordner für jedes Wort in der Datei.

Elemente aus Datei lesen

Wie bereits erwähnt, xargs liest die Standardeingabe. Verwenden Sie den -a Option, stattdessen den Inhalt einer Datei zu lesen.

xargs -a [filename]

Suchen und archivieren Sie Bilder mit tar

Bei Verwendung mit dem tar-Befehl xargs erstellt eine tar.gz Archiv und füllt es mit Dateien, die von find bereitgestellt werden Befehl.

find [location] -name "[search-term]" -type f -print0 | xargs -0 tar -cvzf [tar-gz-archive-name]

Druckbefehl

Um die von xargs ausgeführten Befehle anzuzeigen Verwenden Sie in der Standardausgabe das -t Option.

[command-providing-input] | xargs -t [command]

Beachten Sie im obigen Beispiel, dass xargs führte den mkdir-Befehl für die gesamte von echo bereitgestellte Zeichenfolge aus .

Xargs-Befehlsausführung genehmigen

Einige xargs Vorgänge wie das Entfernen von Dateien und Ordnern sind irreversibel. Um die Ausführung dieser Befehle zu steuern, verwenden Sie -p Option.

[command-providing-input] | xargs -p [command]

Wenn Sie den Befehl mit -p ausführen Option xargs zeigt vor der Ausführung eine Bestätigungszeile an. Geben Sie y ein um fortzufahren, oder n um den Vorgang abzubrechen.

Ausgabe pro Zeile begrenzen

Manchmal ist es notwendig, die Anzahl der Argumente xargs zu kontrollieren nimmt gleichzeitig. Führen Sie diese Aktion mit -n aus Option gefolgt von der Anzahl der Argumente, die Sie einschränken xargs zu:

[command-providing-input] | xargs -n [number] [command]

Im folgenden Beispiel xargs nimmt den String aus dem echo Befehl und teilt es in drei Teile. Dann führt es ein weiteres echo aus für jeden der Teile:

Geben Sie das Trennzeichen an

Die standardmäßigen xargs Trennzeichen ist ein Leerzeichen. Um das Standardtrennzeichen zu ändern, verwenden Sie -d Befehl gefolgt von einem einzelnen Zeichen oder einem Escape-Zeichen wie n (eine neue Zeile).

[command-providing-input] | xargs -d [new-delimiter] | xargs [command]

Im folgenden Beispiel sind die xargs weist das System an, * zu verwenden als Trennzeichen und wenden Sie mkdir an zu jedem der erhaltenen Argumente.

Alle Linux-Benutzerkonten auf dem System auflisten

Verwenden Sie xargs um die Ausgabe der Befehle zu organisieren, wie z. B. cut . Betrachten Sie das folgende Beispiel:

cut -d: -f1 < /etc/passwd | sort | xargs

Der cut-Befehl greift auf /etc/passwd zu Datei und verwendet den : Trennzeichen, um den Anfang jeder Zeile in der Datei abzuschneiden. Die Ausgabe wird dann an sort geleitet , der die empfangenen Zeichenfolgen sortiert, und schließlich zu xargs das zeigt sie an:

Leerzeichen im String entfernen

Da xargs Leerzeichen bei der Suche nach Argumenten ignoriert, ist der Befehl nützlich, um unnötige Leerzeichen aus Zeichenfolgen zu entfernen.

echo "[string-with-unnecessary-spaces]" | xargs

Listen Sie die Anzahl der Zeilen/Wörter/Zeichen in jeder Datei auf

Verwenden Sie xargs mit dem wc-Befehl, um eine Liste von Dateien mit Zeilen-, Wort- und Zeichenanzahl anzuzeigen.

ls | xargs wc

Das folgende Beispiel wies den ls-Befehl an, an xargs zu leiten nur die Dateien, die das Wort „Beispiel“ enthalten. xargs dann angewendet wc zu dieser Liste:

Datei in mehrere Verzeichnisse kopieren

Kopieren Sie Dateien mithilfe von xargs in mehrere Verzeichnisse Befehl. Die Syntax ist einfach:

echo [directory-1] [directory-2] | xargs -n 1 cp -v [filename]

Das echo Der Befehl stellt Verzeichnisnamen und xargs bereit verwendet den cp-Befehl, um die angegebene Datei in jedes der Verzeichnisse zu kopieren.


Linux
  1. So verwenden Sie den Linux-Befehl sed

  2. So verwenden Sie den Linux-Grep-Befehl

  3. So verwenden Sie den Verlaufsbefehl unter Linux

  4. So verwenden Sie den id-Befehl unter Linux

  5. So verwenden Sie den Befehl „screen“ unter Linux

So verwenden Sie den Linux Top-Befehl

So verwenden Sie den fd-Befehl auf einem Linux-System

Wie verwende ich den wget-Befehl unter Linux?

Wie verwende ich den xargs-Befehl unter Linux?

So verwenden Sie den RPM-Befehl unter Linux

So verwenden Sie den which-Befehl in Linux