Xargs für Anfänger mit Beispielen

Xargs für Anfänger mit Beispielen

Verwendung Xargs, Beschrieben im Linux XARGS -Handbuch als Werkzeug, das Befehlszeilen aus der Standardeingabe erstellt und ausführt. Grundsätzlich, Xargs Nehmen Sie die Ausgabe von jedem anderen Tool aus und verwenden Sie diese, da es sich für eine weitere Verarbeitung und Aktion befindet (daher der Verweis auf die Ausführung von Befehlszeilen im Handbuch). Wenn dies Ihre ersten Wochen oder Monate mit sind Xargs, Oder Sie fangen gerade erst an, dies ist der beste Ort, an den Sie einsteigen können Xargs.

In diesem Tutorial lernen Sie:

  • Wie benutzt man Xargs Aus der Befehlszeile in Bash
  • Wie Xargs funktioniert, was es tut und wie man es gut benutzt
  • Grundnutzungsbeispiele verwenden Xargs Aus der Befehlszeile in Bash
Xargs für Anfänger mit Beispielen

Softwareanforderungen und Konventionen verwendet

Softwareanforderungen und Linux -Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder Softwareversion verwendet
System Linux-Verteilungsunabhängige
Software BASH -Befehlszeile, Linux -basiertes System
Andere Der Xargs Das Dienstprogramm ist standardmäßig in der Bash -Shell enthalten
Konventionen # - Erfordert, dass gegebene Linux -Commands mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mithilfe von verwendet werden können sudo Befehl
US


Beispiel 1: Ein einfacher Start

Lassen Sie uns direkt mit einem einfachen Tauchen eintauchen Xargs Beispiel:

$ echo '1'> 1 $ echo '2'> 2 $ echo '3'> 3 $ ls 1 2 3 $ ls | Xargs Cat 1 2 3 

In diesem Beispiel haben wir schnell 3 Dateien erstellt, indem wir eine Nummer wiederholt und dann die Ausgabe umleiten (mit Verwendung >) auf 3 benannte einzelne Dateien 1 Zu 3. Danach haben wir die Existenz der Dateien mit dem überprüft ls Befehl (Listen -Verzeichnis -Inhalt).

Im letzten Befehl haben wir die verwendet ls und leitete (mit Verwendung |) Es wird an ausgegeben Xargs. Nach dem Xargs Befehl Wir haben den neuen Befehl aufgeführt, den wir wollten Xargs ausführen für jede eingegangene Eingabe, einzeln pro Eingabe, in diesem Fall Katze (der den Inhalt einer Datei ausgibt).

Grundsätzlich ist der obige Befehl analog mit den folgenden Befehlen (wenn sich der Verzeichnisgehalt ändern würde, wäre er jedoch nicht mehr analog wie der Xargs wird einfach neue Verzeichniseinträge enthalten):

$ cat 1 1 $ cat 2 2 $ cat 3 3 

Beispiel 2: etwas komplexer

$ ls -color = nie | xargs -i  cat  1 2 3 

Hier haben wir ein paar Bash -Syntax -Idiome (ein Idiom ist ein Sprachkonstrukt/Ausdruck) hinzugefügt, um die Qualität und möglicherweise die Lesbarkeit desselben Ein -Liner -Skripts erheblich zu verbessern, obwohl die Ausgabe in diesem Fall gleich geblieben ist.

Der -ICH Option zu Xargs definiert a ersetzen Zeichenfolge, die im Befehl xargs verwendet wird, um an dem Punkt einzulegen, an dem die Ersatz -Zeichenfolge erneut verwendet wird, die eingegangene Eingabe und für jeden Eingang einzeln - i.e. der nach dem angegebene Befehl Xargs Der Befehl wird für jede Eingabe einzeln ausgeführt.

Der --Farbe = nie Addition macht den von der erzeugten Ausgang ls Befehl (und damit die Eingabe an die Xargs Befehl) viel sicherer.

Beispiel 3: Buggy -Ausgabe

Im letzten Beispiel haben wir vorgestellt --Farbe = nie Als ratsame Option. Schauen wir uns ein Beispiel dafür an, wie - ohne diese Option - wir auf Probleme stoßen können:

Die LS -Ausgabe wird nach Verwendung von Xargs verdorben, wobei die Verwendung der -color = nie Option zu LS erforderlich ist
$ mkdir 1 2 3 $ ls 1 2 3 $ ls | xargs ls ls: Kann nicht zugreifen "


Interessante Ausgabe 🙂 Also was ist hier passiert?

Wir haben zuerst drei Verzeichnisse erstellt, 1 Zu 3, und überprüfte anschließend die Schöpfung davon. Beachten Sie, dass die Ausgabe dunkelblau ist, mit freundlicher Genehmigung von Bash -Shell -Farben, die standardmäßig auf Ubuntu eingerichtet sind.

Als nächstes nahmen wir die Ausgabe von ls und gab es an an Xargs was es wiederum angab ls. Ähnlich wie 'echo 1 | LS 'man würde erwarten würden. Aber es hat nicht funktioniert! Stattdessen haben wir eine Reihe von Farbcodes zurück erhält. Jeder, der das zum ersten Mal sieht, hat es schwer, es wieder mit Farbcodes zu verknüpfen.

Hinzufügen einer einfachen Option --Farbe = nie saniert die ls Ausgabe als geeignete Eingabe für Xargs, und die Ausgabe sieht wie erwartet aus: für die Verzeichnisse 1 Zu 3, als Ausgabe durch die ls Befehl, den Inhalt auflisten (i.e. ähnlich zu Ls 1; ls 2; LS3).

Beispiel 4: Text Parsen mit Xargs und SED

$ echo -e '1 \ n2 \ n3'> test $ cat test 1 2 3 $ ls test $ ls - -color = nie | xargs -i  cat  | sed 's | [2-3] | 0 |' 1 0 0 $ ls --farbe = nie | xargs -i  cat  | sed 's | [2-3] | 0 |' | xargs -i  grep  $ (ls) 1 

Ein bisschen herausfordernderes Beispiel, aber Sie werden es bald verstehen.

Der erste Befehl erstellte einfach eine Datei mit drei Zeilen (\N erstellt eine neue Linie und die -e Option zum Echo erlaubt das \N benutzt werden). Als nächstes geben wir den Inhalt der Datei mithilfe der Datei aus Katze, und überprüft, wie viele Dateien mit Verwendung vorhanden waren ls (nur einer; der prüfen Datei, die wir erstellt haben).

Als Nächst Xargs und gibt den Inhalt jeder Datei mit verwendetem Datei aus Katze. Dann haben wir eine kleine sed Befehl, der die Zahlen ersetzt 2 Und 3 bis 0. Die Ausgabe ist der vollständige Inhalt der Testdatei, aber mit dem 2 Und 3 gewechselt zu 0 Wie angewiesen.

Schließlich nehmen wir den gleichen Befehl und geben ihn an einen anderen weiter Xargs. Denken Sie so darüber nach; visuell (in Ihrem Kopf) sehen die 1, 0, 0 Ausgabe aus dem vorherigen Befehl, der geleitet wurde (|) in das Finale Xargs ohne die vorhergehende Komplexität. Sehen Sie, wie Sie so allmählich sehr komplexe Befehle erstellen können? Dies zeigt auch die Kraft von Xargs Kurz gesagt, obwohl viel mehr möglich ist.

Im endgültigen Befehl bestehen wir das 1, 0, 0 Ausgabe in Grep, die den Inhalt von durchsuchen wird $ (ls). $ () Startet eine Unterschale, führt den Befehl aus, der sich darin befindet, und fügt die Ausgabe dieses Befehls an der Stelle ein, an der die Unterschale gerufen wurde. Mit anderen Worten, wir führen aus:

Grep '1' ./testen Sie Grep '0' ' ./testen Sie Grep '0' ' ./prüfen 

Und die Ergebnisse sind in der Tat wie erwartet; 1 Nur, da es in der Datei zu Beginn keine Nullen gab.

Abschluss

In diesem Artikel haben wir uns die Grundlagen des Xargs Befehl und ein paar Beispiele für wie Xargs Kann verwendet werden, einschließlich der Manipulation des Textesanalysens und der Verzeichnisauflistung. Mein nächster Artikel wird weiter fortgeschritten sein Xargs Verwendung, einschließlich zusätzlicher Beispiele.

Genießen Xargs und hinterlassen Sie uns einen Kommentar bei Ihrem coolsten Xargs Befehlszeilen oder Skripte!

Verwandte Linux -Tutorials:

  • Beispiele für die Verwendung des XARGS -Befehls unter Linux
  • Multi-Thread-Xargs mit Beispielen
  • Dinge zu installieren auf Ubuntu 20.04
  • Verschachtelte Schleifen in Bash -Skripten
  • Mastering -Bash -Skriptschleifen beherrschen
  • Eine Einführung in Linux -Automatisierung, Tools und Techniken
  • Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
  • Grundlegende Linux -Befehle
  • Linux -Befehle: Top 20 wichtigste Befehle, die Sie benötigen, um…
  • Beispiele des Linux-Komplexes Bash-Ein-Liner