Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ xargs(1) — DG/UX R4.11MU05

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

sh(1)



xargs(1)                       DG/UX R4.11MU05                      xargs(1)


NAME
       xargs - construct argument list(s) and execute command

SYNOPSIS
       xargs [flags] [ command [initial-arguments] ]

DESCRIPTION
       Xargs combines the fixed initial-arguments with arguments read from
       standard input to execute the specified command one or more times.
       The flags you specify determine the number of arguments read for each
       command invocation and how they are combined.

       Command, which may be a shell file, is searched for, using one's
       $PATH.  If command is omitted, /bin/echo is used.

       Arguments read in from standard input are defined to be contiguous
       strings of characters delimited by one or more blanks, tabs, or new-
       lines; empty lines are always discarded.  Blanks and tabs may be
       embedded as part of an argument if escaped or quoted.  Characters
       enclosed in quotes (single or double) are taken literally, and the
       delimiting quotes are removed.  Outside of quoted strings a backslash
       (\) will escape the next character.

       Each argument list is constructed starting with the initial-
       arguments, followed by some number of arguments read from standard
       input (Exception: see -i flag).  Flags -i, -l, and -n determine how
       arguments are selected for each command invocation.  When none of
       these flags are coded, the initial-arguments are followed by
       arguments read continuously from standard input until an internal
       buffer is full.  Then, command is executed with the accumulated
       arguments.  This process is repeated until there are no more
       arguments.  When there are flag conflicts (e.g., -l vs.  -n), the
       last flag has precedence.  Flag values are:

       -lnumber       Command is executed for each non-empty number lines of
                      arguments from standard input.  The last invocation of
                      command will be with fewer lines of arguments if fewer
                      than number remain.  A line is considered to end with
                      the first new-line unless the last character of the
                      line is a blank or a tab; a trailing blank/tab signals
                      continuation through the next non-empty line.  If
                      number is omitted, 1 is assumed.  Option -x is forced.

       -ireplstr      Insert mode: command is executed for each line from
                      standard input, taking the entire line as a single
                      argument and inserting it in initial-arguments for
                      each occurrence of replstr.  A maximum of five
                      arguments in initial-arguments may each contain one or
                      more instances of replstr.  Blanks and tabs at the
                      beginning of each line are thrown away.  Constructed
                      arguments may not grow larger than 255 characters, and
                      option -x is also forced.  {} is assumed for replstr
                      if not specified.

       -nnumber       Execute command using as many standard input arguments
                      as possible, up to number arguments maximum.  Fewer
                      arguments will be used if their total size is greater
                      than size characters, and for the last invocation if
                      there are fewer than number arguments remaining.  If
                      option -x is also coded, each number arguments must
                      fit in the size limitation, or xargs terminates
                      execution.

       -t             Trace mode: The command and each constructed argument
                      list are echoed to file descriptor 2 just before their
                      execution.

       -p             Prompt mode: The user is asked whether to execute
                      command each invocation. Trace mode (-t) is turned on
                      to print the command instance to be executed, followed
                      by a ?... prompt.  A reply of y (optionally followed
                      by anything) will execute the command; anything else,
                      including just a carriage return, skips that
                      particular invocation of command.

       -x             Causes xargs to terminate if any argument list would
                      be greater than size characters; -x is forced by the
                      options -i and -l.  When none of the options -i, -l,
                      or -n are coded, the total length of all arguments
                      must be within the size limit.

       -ssize         The maximum total size of each argument list is set to
                      size characters; size must be a positive integer less
                      than or equal to 470. If -s is not coded, 470 is taken
                      as the default.  Note that the character count for
                      size includes one extra character for each argument,
                      plus the count of characters in the command name.

       -eeofstr       Eofstr is taken as the logical end-of-file string.
                      Underscore (_) is assumed for the logical EOF string
                      if -e is not coded.  The value -e with no eofstr coded
                      turns off the logical EOF string capability
                      (underscore is taken literally).  Xargs reads standard
                      input until either end-of-file or the logical EOF
                      string is encountered.

       Xargs will terminate if it receives a return code of -1 from command,
       or if it cannot execute command.  When command is a shell program, it
       should explicitly exit (see sh(1)) with an appropriate value to avoid
       accidentally returning with -1.

EXAMPLES
       In the Bourne shell the following will move all files from directory
       $1 to directory $2, and echo each move command just before doing it:

                 ls $1 | xargs -i -t mv $1/{} $2/{}

       In the Bourne shell the following will combine the output of the
       parenthesized commands onto one line, which is then echoed to the end
       of file log:

                 (logname; date; echo $0 $*) | xargs >>log

       The user is asked which files in the current directory are to be
       archived.  Xargs archives them into arch one at a time (1.), or many
       at a time (2.).

                 1.  ls | xargs -p -l ar r arch
                 2.  ls | xargs -p -l | xargs ar r arch

       The following will execute diff(1) with successive pairs of arguments
       originally typed as shell arguments:

                 echo $* | xargs -n2 diff

DIAGNOSTICS
       Self-explanatory.

SEE ALSO
       sh(1).


Licensed material--property of copyright holder(s)

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