Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ xargs(1) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

echo(1)

xargs(1)                                                           xargs(1)

NAME
     xargs - Argumentliste(n) aufbauen und Kommando ausführen

SYNTAX
     xargs [option ...] [kommando [anfangsargument ...]]

BESCHREIBUNG
     xargs verbindet beim Aufruf angegebene Argumente und solche, die es
     von der Standardeingabe liest, miteinander. Danach führt xargs das
     beim Aufruf angegebene Kommando ein- oder mehrmals aus. Wie viele
     Argumente für jeden Kommandoaufruf verwendet werden und auf welche
     Weise diese Argumente kombiniert werden, können Sie durch Optionen
     steuern.

     Die von der Standardeingabe gelesenen Argumente müssen zusammenhän-
     gende Zeichenketten sein, die von einem oder mehreren Leer-,
     Tabulator- oder einem Neue-Zeile-Zeichen abgeschlossen werden. Leere
     Zeilen werden gelöscht. Wenn Leer- oder Tabulatorzeichen Bestandteil
     eines Arguments sein sollen, müssen sie entweder durch einen Gegen-
     schrägstrich \ entwertet oder in Anführungszeichen "..." oder Hochkom-
     mas '...' eingeschlossen werden. Ansonsten würden sie als Trennzeichen
     zwischen den Argumenten interpretiert. Auch sonst gelten die üblichen
     Entwertungsmechanismen, d. h., Sonderzeichen werden dadurch entwertet,
     daß sie in Anführungszeichen "..." oder Hochkommas '...' eingeschlos-
     sen werden oder ihnen ein Gegenschrägstrich \ vorangestellt wird.

OPTIONEN
     Mit den Optionen -I (bzw. -i), -L (bzw. -l) und -n legen Sie fest, wie
     die beim Aufruf von xargs angegebenen Anfangsargumente und die von der
     Standardeingabe eingelesenen Argumente für einen Aufruf des Kommandos
     kommando verwendet werden.

     Keine der Optionen -I (bzw. -i), -L (bzw. -l) oder -n angegeben:
          Zunächst werden die beim Aufruf von xargs angegebenen Anfangsar-
          gumente, dann die Argumente von der Standardeingabe eingelesen,
          bis ein interner Puffer voll ist. Dann wird kommando mit all die-
          sen Argumenten ausgeführt. Dieser Vorgang wird so lange wieder-
          holt, bis alle Argumente abgearbeitet sind.

     Kombinationen der Optionen -I (bzw. -i), -L (bzw. -l) oder -n:
          Wenn sich Optionen gegenseitig aufheben, etwa -l und -n, so gilt
          die zuletzt angegebene Option.

     -I ersetzungszeichenkette
          (I - insert) kommando wird für jede von der Standardeingabe ein-
          gelesene Zeile ausgeführt. Dabei wird jede Zeile als ein Argument
          interpretiert und für jedes Vorkommen von ersetzungszeichenkette
          in die Liste der beim Aufruf von xargs angegebenen Anfangsargu-
          mente eingefügt.

          In der Liste der Anfangsargumente können maximal fünf Argumente
          jeweils ein- oder mehrmals ersetzungszeichenkette enthalten.



Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

xargs(1)                                                           xargs(1)

          Leer- und Tabulatorzeichen zu Beginn einer Zeile werden igno-
          riert. Die erstellten Argumente dürfen aus maximal 255 Zeichen
          bestehen.

          Bei -I wird automatisch -x gesetzt.

          Dies entspricht der alten Option -i, die weiterhin unterstützt
          wird. Für ersetzungszeichenkette wird bei -i ein Paar geschweif-
          ter Klammern {} angenommen, falls nicht explizit angegeben.

     -L zeilenanzahl
          (L - line) kommando wird für jede zeilenanzahl nicht-leerer Argu-
          mentzeilen, die xargs von der Standardeingabe liest, ausgeführt.
          Bleiben für den letzten Aufruf von kommando weniger als
          zeilenanzahl Zeilen übrig, so wird kommando mit diesen verblei-
          benden Zeilen ausgeführt.

          Eine Zeile gilt beim ersten Auftreten eines Neue-Zeile-Zeichens
          als abgeschlossen, es sei denn, das letzte Zeichen in der Zeile
          ist ein Leer- oder Tabulatorzeichen. In diesem Fall wird die
          Zeile in der nächsten nicht leeren Zeile fortgesetzt.

          Dies entspricht der alten Option -l, die weiterhin unterstützt
          wird. Ist zeilenanzahl bei -l nicht angegeben, wird 1 angenommen.
          Bei -l wird automatisch -x gesetzt.

     -n arganzahl
          kommando wird unter Verwendung möglichst vieler von der Standard-
          eingabe eingelesener Argumente ausgeführt, maximal jedoch mit
          arganzahl Argumenten. Wenn die Gesamtgröße der Argumentliste die
          durch maxgröße (siehe Option -s) festgelegte Obergrenze über-
          steigt, so werden weniger Argumente verwendet. Wenn für den letz-
          ten Aufruf von kommando weniger als arganzahl Argumente übrig-
          bleiben, so werden diese verbleibenden Argumente verwendet. Wenn
          auch die Option -x gesetzt ist, so dürfen jeweils arganzahl Argu-
          mente die durch maxgröße festgelegte Obergrenze (siehe Option -s)
          nicht überschreiten, andernfalls wird die Ausführung von xargs
          beendet.

     -E dateiende
          xargs liest die Standardeingabe entweder bis zum Erreichen des
          tatsächlichen Dateiendes oder bis es das angegebene logische
          Dateiende dateiende erkennt.

          Für dateiende geben Sie eine Zeichenkette an. Diese Zeichenkette
          wird bei der Ausführung von xargs als logisches Dateiende inter-
          pretiert.

          Dies entspricht der alten Option -e, die weiterhin unterstützt
          wird. Wird -e ohne dateiende angegeben, ist kein logisches Datei-
          ende mehr definiert. Der Unterstrich _ hat keine Sonderbedeutung
          und wird als normales Zeichen verarbeitet.


Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

xargs(1)                                                           xargs(1)

          Weder -E noch -e angegeben:

          Der Unterstrich _ wird als logisches Dateiende interpretiert.

     -p   (p - prompt) Bei jedem Aufruf von kommando werden Sie gefragt, ob
          dieser Aufruf ausgeführt werden soll oder nicht. Dazu wird der
          Trace-Modus (Option -t) eingeschaltet, und der Aufruf von
          kommando wird, gefolgt von der Eingabeaufforderung ?..., ange-
          zeigt.

     -s maxgröße
          Die maximale Anzahl von Zeichen in einer Argumentliste wird auf
          maxgröße gesetzt (Eine Argumentliste ist eine Kombination von
          Argumenten, die nach den durch die Optionen -I (bzw. -i), -L
          (bzw. -l) oder -n festgelegten Regeln erzeugt wurde). Zu beachten
          ist, daß in maxgröße ein zusätzliches Zeichen für jedes Argument
          und die Anzahl der Zeichen im Kommandonamen bereits enthalten
          sind.

     -t   (t - trace) Das kommando und jede erstellte Argumentliste werden
          unmittelbar bevor sie abgearbeitet werden auf die Standardfehler-
          ausgabe ausgegeben.

     -x   Die Ausführung von xargs wird beendet, wenn die Länge einer Argu-
          mentliste die angegebene Obergrenze maxgröße (siehe Option -s)
          übersteigen würde.

          Die Option -x ist standardmäßig gesetzt, wenn die Optionen -I
          (bzw. -i) oder -l gesetzt sind.

          Wenn keine der Optionen -I (bzw. -i), -L (bzw. -l) oder -n
          gesetzt ist, dann wird die Ausführung von xargs beendet, wenn die
          Gesamtlänge aller Argumente maxgröße (siehe Option -s) über-
          schreitet.

     --   Ende der Optionenliste. Die Angabe ist nötig, wenn kommando mit -
          beginnt.

     kommando
          Für kommando können Sie ein beliebiges Kommando angeben. Wenn die
          Ausführung von kommando den Endestatus 255 liefert oder kommando
          nicht ausgeführt werden kann, wird die Ausführung von xargs been-
          det. Wenn kommando ein Shell-Skript ist, sollte es explizit mit
          exit einen passenden Endestatus liefern, um den zufälligen Wert
          255 zu vermeiden (z. B. exit -1).

          kommando nicht angegeben:

          Für kommando wird echo angenommen.





Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

xargs(1)                                                           xargs(1)

     anfangsargument
          Die beim Aufruf von xargs angegebenen Anfangsargumente und die
          von der Standardeingabe eingelesenen Argumente werden wie oben
          beschrieben zu Argumentlisten zusammengestellt (siehe Optionen
          -I, -L und -n) und kommando wird mit diesen Argumentlisten ausge-
          führt.

          Am Anfang einer Argumentliste stehen immer die beim Aufruf ange-
          gebenen Anfangsargumente, es sei denn die Option -I (bzw. -i) ist
          gesetzt.

          anfangsargument nicht angegeben:

          Die Argumentlisten werden nur aus den von der Standardeingabe
          eingelesenen Argumenten aufgebaut.

ENDESTATUS
     0      Jeder Aufruf von kommando hat den Endestatus 0 geliefert.

     1-125  Die Argumente konnten nicht wie gefordert zusammengestellt wer-
            den oder mind. ein Aufruf von kommando hat einen Endestatus
            ungleich 0 geliefert oder ein anderer Fehler ist aufgetreten.

     126    Das angegebene kommando existiert, kann aber nicht aufgerufen
            werden.

     127    Das angegebene kommando ist nicht auffindbar.

INTERNATIONALE UMGEBUNG
     Die Umgebungsvariable LCMESSAGES bestimmt die Sprache der Meldungs-
     texte.

     LCCOLLATE beeinflußt die Sortierreihenfolge.

     LCCTYPE bestimmt die Zeichenklassen und die Zeichenkonvertierung.

     Wenn LCMESSAGES, LCCOLLATE oder LCCTYPE nicht oder als leere Zei-
     chenkette definiert ist, wird der Wert von LANG als Standardwert für
     die jeweils nicht gesetzte oder leere Variable herangezogen. Ist auch
     LANG nicht oder als leere Zeichenkette definiert, verhält sich das
     System so, als wäre es nicht internationalisiert.

     Die Umgebungsvariable LCALL bestimmt die gesamte internationale Umge-
     bung. LCALL hat Vorrang vor allen anderen Umgebungsvariablen im
     Bereich der Internationalisierung.

     Hat eine der Variablen für die internationale Umgebung einen ungülti-
     gen Wert, verhält sich das System so, als wäre keine Variable gesetzt.






Seite 4                      Reliant UNIX 5.44               Gedruckt 11/98

xargs(1)                                                           xargs(1)

BEISPIELE
     Beispiel 1

     Mit der folgenden Shell-Prozedur schiebe werden alle Dateien in einem
     Verzeichnis, deren Namen nicht mit einem Punkt "." beginnen, in ein
     anderes Verzeichnis übertragen:

     $ cat schiebe
     ls $1 | xargs -I {} -t mv $1/{} $2/{}
     $ schiebe dir1 dir2
     mv dir1/datei1 dir2/datei1
     mv dir1/datei2 dir2/datei2
     mv dir1/datei3 dir2/datei3

     Für die beiden Stellungsparameter $1 und $2 werden die beim Aufruf von
     schiebe angegebenen Argumente dir1 und dir2 eingesetzt. Das Kommando
     ls $1 gibt den Inhalt des Verzeichnisses dir1 aus, wobei in einer
     Zeile jeweils ein Dateiname steht. Diese Dateinamen werden nacheinan-
     der für {} eingesetzt (Option -I {}). Vor jedem Aufruf des Kommandos
     mv wird das Kommando und die Argumentliste ausgegeben (Option -t).

     Beispiel 2

     Die folgende Shell-Prozedur werundwann hängt die Ausgabe der in run-
     den Klammern (...) zusammengefaßten Kommandos in einer Zeile an das
     Ende der Datei log an:

     $ cat werundwann
     (logname; date; echo $0 $*) | xargs >>log
     $ cat log
     michael Wed Mar 27 14:21:06 MET 1991 werundwann

     Beispiel 3

     Die folgende Shell-Prozedur archiviere archiviert die Dateien im aktu-
     ellen Verzeichnis, deren Namen nicht mit einem Punkt "." beginnen, in
     einem Archiv archiv.a [siehe ar(1)]:

     $ cat archiviere
     ls | xargs -p -L 1 ar r archiv.a
     $ archiviere
     ar r archiv.a datei1 ?... y
     ar: creating archiv.a
     ar r archiv.a datei2 ?... n
     ar r archiv.a datei3 ?... y
     ar r archiv.a datei4 ?... n
     $ ar t archiv.a
     datei1
     datei3





Seite 5                      Reliant UNIX 5.44               Gedruckt 11/98

xargs(1)                                                           xargs(1)

     ls gibt den Inhalt des aktuellen Verzeichnisses auf die Standardaus-
     gabe aus, wobei in jeder Zeile jeweils ein Dateiname steht. xargs ruft
     dann ar mit den Argumenten -r, archiv.a und jeweils einem Dateinamen,
     den ls liefert auf. Weil die Option -p gesetzt ist, werden Sie jedes-
     mal gefragt, ob der entsprechende ar-Aufruf ausgeführt werden soll
     oder nicht. Wenn Sie diese Frage das erste Mal bejahen, legt ar das
     Archiv archiv.a an und gibt eine entsprechende Meldung aus und archi-
     viert die aktuelle Datei in archiv.a. Danach werden weitere Dateien in
     archiv.a archiviert, wenn Sie die Fragen bejahen. Zum Schluß können
     Sie sich mit ar -t das Inhaltsverzeichnis von archiv.a ausgeben las-
     sen.

SIEHE AUCH
     echo(1).








































Seite 6                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026