Xargs für Anfänger mit Beispielen
- 909
- 214
- Levke Harnapp
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
Softwareanforderungen und Konventionen verwendet
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 BefehlUS |
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:
$ 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
- « Zufällige Entropie in Bash
- So überprüfen Sie die Integrität eines Linux -Verteilungs -ISO -Bildes »