xargs命令详解

从标准输入生成和执行命令行

语法

xargs [ -p ] [ -t] [ -e[ EOFString ] ] [ -EEOFString ] [ -i[ ReplaceString ] ] [ -IReplaceString ] [ -l [ Number ] ] [ -L Number ] [ -n Number [ -x ] ] [ -s Size ] [ Command [ Argument … ] ]

功能介绍

xargs命令是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具。它擅长将标准输入数据转换成命令行参数,xargs能够处理管道或者stdin并将其转换成特定命令的命令参数。xargs也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。xargs的默认命令是echo,空格是默认定界符。这意味着通过管道传递给xargs的输入将会包含换行和空白,不过通过xargs的处理,换行和空白将被空格取代。xargs是构建单行命令的重要组件之一。

参数

-e[EOFString] 废弃的标志。请使用 -E 标志。 将 EOFString 参数用作逻辑 EOF 字符串。如果不指定 -e 或 -E 标志, 则假定下划线(_)为逻辑 EOF 字符串。如果不指定 EOFString 参数,则禁用逻辑 EOF 字符串 能力,且下划线按照字面含义使用。xargs 命令读取标准输入直到达到 EOF 或指定的字符串。

-E EOFString 指定逻辑 EOF 字符串以替换缺省的下划线(_)。 xargs 命令读取标准输入直到达到 EOF 或指定的字符串。

-i[ReplaceString] 废弃的标志。请使用 -I(大写 i)标志。 如果没有指定 ReplaceString 参数, 则使用字符串 “{}“。 注:-I(大写 i)和 -i 标志是互相排斥的;最后指定的标志生效。

-I ReplaceString (大写 i)。插入标准输入的每一行作为 Command 参数的自变量,把它插入每个发生 ReplaceString 的 Argument 中。ReplaceString 不能在超过 5 个自变量中使用。 在每个标准输入行开始的空字符被忽略。 每个 Argument 能包含一个或多个 ReplaceString,但不能大于 255 字节。-I 标志同样打开 -x 标志。注:-I(大写 i)和 -i 标志是互相排斥的;最后指定的标志生效。

-l[Number] (小写的 L)。废弃的标志。请使用 -L 标志。 如果没有指定 Number 参数,使用缺省值 1。-l 标志同样打开 -x 标志。 注: -L、-I(小写的 L)和 -n 标志是互相排斥的;最后指定的标志生效。

-L Number 用从标准输入读取的指定行数的非空参数运行 Command 命令。如果保留少于指定的 Number,Command 参数 的最后调用可以有少数几个参数行。行以第一个换行字符结束,除非该行的最后一个字符是一个空格 或制表符。后续的空格表示延续至下一个非空行。注: -L、-I(小写的 L)和 -n 标志是互相排斥的;最后指定的标志生效。

-n Number 运行 Command 参数,且使用尽可能多的标准输入自变量,直到 Number 参数指定的最大值。如果满足以下条件,则 xargs 命令使用 更少的自变量: 如果积累的命令行长度超出了 由 -s Size 标志指定的字节。 最后的迭代有少于 Number(但是非 零)的自变量保留。 注: -L、-I(小写的 L)和 -n 标志是互相排斥的;最后指定的标志生效。

-p 询问是否运行 Command 参数。 它显示构造的命令行,后跟一个 ?…(问号和省略号)提示。输入肯定的、特定于语言环境的响应 以运行 Command 参数。 任何其它响应都会引起 xargs 命令 跳过那个特定的参数调用。每个调用都将询问您。 -p 标志同样打开 -t 标志。

-s Size 设置构造的 Command 行的最大 总大小。Size 参数必须是正整数。如果满足以下条件,则使用更少的自变量: 自变量的总数超出 -n 标志指定的自变量数。 总行数超出 -L 或 -I(小 写 L)标志指定的行数。 累积由 Size 参数指定的字节数之前达到 EOF。

-t 启用跟踪方式,并在运行之前将构造的 Command 行回送到标准错误。

-x 如果有任何 Command 行大于 -s Size 标志指定的字节数,停止运行 xargs 命令。如果指定 -I(大写 i)或 -l(小写 L)标志,则打开 -x 标志。如果 没有指定 -i、-I(大写 i)、-l(小写 L)、-L 或 -n 标志,则 Command 行的总长度必须 在 -s Size 标志指定的限制内。

例子