So verwenden Sie XARGs unter Linux

So verwenden Sie XARGs unter Linux
Xargs ist ein Befehlszeilenwerkzeug. Wenn Sie die Ausgabe eines Befehls als Argument eines anderen Befehls umleiten möchten, ist Xargs das Werkzeug für Sie. Es ist ein sehr nützliches Instrument, um problemlos viele Dinge in der Befehlszeile zu machen. In diesem Artikel werde ich Ihnen zeigen, wie Sie XARGS unter Linux verwenden können. Also lasst uns anfangen.

Wie Xargs funktioniert:

Das Format, in dem Sie den Befehl xargs verwenden, lautet:

$ command1 | Xargs Command2

Sie können das Verhalten von Xargs auch mit einigen Optionen ändern. In diesem Fall ist das Format des Xargs -Befehls:

$ command1 | xargs [Optionen] Befehl2

Hier die Ausgabe der Kommando1 wird als Argument von verwendet Kommando2. Die Ausgabe von Kommando1 wird von Xargs in viele Argumente unterteilt, abhängig von einem Charakter namens Trennzeichen. Dann führt Xargs den Befehl aus Kommando2 Für jedes dieser Argumente und dieses Argument wird als Argument des Befehls verabschiedet Kommando2.

Zum Beispiel sagen wir die Ausgabe von Kommando1 ist wie folgt:

value1 value2 Wert3

Nehmen wir an, der Trennzeichencharakter ist Raum. Jetzt die Ausgabe von Kommando1 wird in 3 Argumente unterteilt, Wert1, Wert2, Und Wert3.

Jetzt führt Xargs den Befehl aus Kommando2 Für jedes der 3 Argumente einmal.

$ command2 value1
$ command2 value2
$ command2 Value3

Hier, Wert1, Wert2, Und Wert3 sind die Argumente, die Xargs aus der Ausgabe des Befehls analysiert haben Kommando1.

Sie können den gleichen Effekt mithilfe von Schleifen in einem Shell -Skript erzielen. Aber Xargs ist einfach eine einfachere Möglichkeit, Dinge ohne Schleifen zu tun, insbesondere in der Befehlszeile.

Standardmäßig ist der Trennzeichen von Xargs Newline/Space -Charakter. Aber Sie können den Trennzeichen mit dem ändern -D oder -Abgrenzer Option von xargs.

Standardmäßig arbeitet Xargs gleichzeitig mit einem Argument. Wenn Sie den Befehl ausführen möchten Kommando2 mit mehreren Argumenten aus der Ausgabe des Befehls Kommando1, Dann können Sie die verwenden -N oder -Max-Args Option von xargs. Manchmal müssen Sie Xargs speziell mit einem Argument mit dem mit dem Argument zusammenarbeiten -N oder -Max-Args Möglichkeit.

Sie können auch andere Zeichenfolgen an die an den Befehl übergebenen Argumente anhängen oder vorbereiten Kommando2 Verwendung der -ICH Option von xargs.

Es gibt viele andere Optionen von Xargs, aber diese 3 sind die wichtigsten und nützlichsten. Also werde ich diese 3 xargs Argumente in diesem Artikel nur abdecken.

Das ist genug blabberend. Lassen Sie uns einige Beispiele durchgehen.

Beispiel 1: Erstellen und Entfernen von Dateien, die in einer Textdatei aufgeführt sind

Nehmen wir an, Sie haben eine Liste von Dateinamen in einer Textdatei Dateien.txt.

Sie können den Inhalt der Textdatei sehen Dateien.txt Wie im Screenshot unten gezeigt.

$ CAT -Dateien.txt

Jetzt können Sie alle in der aufgeführten Dateien erstellen Dateien.txt Textdatei mit der berühren Befehl mit Xargs folgendermaßen:

$ CAT -Dateien.txt | Xargs Touch

Wie Sie sehen können, werden die Dateien wie in der aufgeführt erstellt Dateien.txt.

Nehmen wir nun an, Sie möchten die Dateien entfernen, die in der aufgeführt sind Dateien.txt Textdatei. Du kannst den ... benutzen rm Befehl mit Xargs folgendermaßen:

$ CAT -Dateien.txt | xargs rm -v

Nur die in der aufgeführten Dateien Dateien.txt Die Datei wird entfernt, wie Sie im Screenshot unten sehen können.

Dies ist ein sehr einfaches Beispiel für Xargs.

Beispiel 2: Umleiten Sie Stdout in Befehle, die die Rohr nicht unterstützen

Sie können die Stdout eines Befehls umleiten Kommando1 als Stdin eines anderen Befehls Kommando2 Wenn Befehl Kommando2 Unterstützt Linux Pipe. Wenn der Befehl jedoch keine Pipe unterstützt, können Sie dies nicht tun.

Zum Beispiel die Echo Der Befehl unterstützt keine Rohre. Daher druckt der folgende Befehl nichts, wie Sie im Screenshot unten sehen können.

$ Datum | Echo

Der Befehl xargs kann Ihnen helfen, die Stdout von umzuleiten Kommando1 (in diesem Fall Datum) zum Stdin von Kommando2 (in diesem Fall Echo) Wie Sie im Screenshot unten sehen können.

$ Datum | Xargs Echo

Beispiel 3: Veränderung des Trennzeichens von Xargs

Hier habe ich eine Zeichenfolge gedruckt 123-456-7890 (eine Dummy -Telefonnummer) mit Xargs. Wie Sie sehen können, wird die gesamte Ausgabe als einzelne Argumentation behandelt und Xargs läuft die aus Echo Befehl nur einmal.

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

Hier habe ich den Trennzeichen in geändert - Verwendung der -D Option von xargs. Wie Sie sehen können, die Ausgabe 123-456-7890 wird jetzt als 3 verschiedene Argumente behandelt 123, 456, Und 7890.

$ echo -n "123-456-789" | Xargs -n 1 -d -Echo

Beispiel 4: Anhängen oder Vorbereitung von XARGS -Argumenten

Sie können an der String des Arguments angehängt (zum Ende des Arguments hinzufügen) oder vor dem Argument hinzufügen (auf die Vorderseite des Arguments hinzufügen) Kommando2 Verwenden von Xargs. Bevor ich Ihnen zeige, wie das geht, werde ich Ihnen zeigen, wie Sie das verwenden können -ICH Option von xargs.

Der -ICH Mit Xargs können Sie ein Symbol für das XARGS -Argument definieren, das an den Befehl übergeben wird Kommando2. Es funktioniert wie eine Variable.

Zum Beispiel,

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

Hier definiert die Option als Symbol für das Argument, an dem Xargs derzeit arbeitet. Einmal das Symbol ist definiert, das Symbol kann verwendet werden, um das Argument an den Befehl zu übergeben Kommando2, welches (das Symbol ) wird durch den Wert des Arguments ersetzt.

Nun die Zeichenfolge anhängen .txt (sagen wir sagen) Zu jedem Argument können Sie Xargs wie folgt verwenden:

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

Auf die gleiche Weise können Sie die Zeichenfolge vorbereiten Hallo (sagen wir sagen) zu jedem Argument wie folgt:

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

Beispiel 5: Erweiterungen bestimmter Dateien ändern

Dieser ist ein bisschen schwierig. Aber ich werde erklären, wie es funktioniert. Mach dir keine Sorge.

Nehmen wir an, Sie haben einige Dateien in Ihrem aktuellen Arbeitsverzeichnis mit verschiedenen Dateierweiterungen. Jetzt möchten Sie sie alle an ändern png Verlängerung.

Sie können die Dateierweiterung aller Dateien in Ihrem aktuellen Arbeitsverzeichnis in PNG mit Xargs wie folgt ändern:

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

Wie Sie sehen können, hat sich die gesamte Dateierweiterung in PNG geändert.

Hier startet Xargs eine Bash -Unterschale und führt den Bash -Befehl aus

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

Erste, Datei = weist das Symbol zu Wert, der der Dateiname (der Argumentwert von Xargs) zu der ist DATEI Shellvariable.

Dann, MV Der Befehl wird verwendet, um die Dateierweiterung zu ändern.

Der $ Datei Die Shell -Variable enthält den ursprünglichen Dateinamen.

$ Datei %%.* Entfernt die Erweiterung des Dateinamens (einschließlich . Charakter) und dann .png Die Zeichenfolge ist an den gestreiften Dateinamen beigefügt.

Xargs können viel komplexere Dinge tun. Probieren Sie immer wieder neue Dinge mit Xargs aus. Der Himmel ist Ihre Grenze.

Wenn Sie Hilfe bei XARGS benötigen, können Sie die Mannseite von Xargs wie folgt überprüfen:

$ MAN XARGS

So verwenden Sie Xargs unter Linux. Danke, dass du diesen Artikel gelesen hast.