在 xargs 输出后提供命令行开关

在 xargs 输出后提供命令行开关

鉴于我使用这个命令:

outputStuff.sh | awk -F"-" '{print $5"-"$6}' | xargs someTool (XARGS OUTPUT HERE) --someCommandLineSwitchHere

但是我需要在 xargs 输出后提供命令行开关吗?有人解决过这个问题吗?

答案1

因此该标志用于someTool但必须位于输入文件之后...使用子 shell 可以为您提供各种灵活性:

xargs sh -c 'someTool "$@" --someCommandLineSwitchHere' someTool

处理后,xargs这实际上变成了

xargs sh -c 'someTool "$@" --someCommandLineSwitchHere' someTool item1 item2 ... itemN

...单引号字符串之后命令行上的所有内容都成为sh(位置参数)的输入参数。这些开始于$0和 因为$0通常是我们刚刚使用的正在运行的命令someTool(尽管这里允许任何内容)。剩下的所有内容都由xargs和 加上您的正常位置参数:$1$2等。

相关内容