【问题标题】:xargs: how to "describe" output by input argumentsxargs:如何通过输入参数“描述”输出
【发布时间】:2021-12-05 23:58:45
【问题描述】:

我有以下xargs 命令行:

$ gethosts |xargs -L1 -I% rx % some-command

其中gethosts 是获取主机地址列表的脚本,rx 是在远程主机上执行特定命令的脚本。输出可能是:

output 1
output 2
...

我想要的是命令可以输出它的参数:

host1,output1
host2,output2
...

即,我想知道,对于每个输出行,哪个主机生成了该输出。

【问题讨论】:

  • 您的rx 显然将主机名作为第一个参数。只需修改 rx 以便将主机名添加到其输出中。

标签: shell xargs


【解决方案1】:

为此,您必须在 xargs "-c" 中使用选项命令并运行 sh 例如指定用于该命令的解释器。

要打印主机(不带换行符),将使用 printf 命令。

最终的结果如下命令行:

gethost|xargs -L1 -I% sh -c 'printf "%, " && rx % some-command'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-24
    • 1970-01-01
    • 2017-10-03
    • 2014-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多