我试图将第一个命令的部分输出作为另一个命令的参数。
第一个命令的输出是这样的,3000是我想要的:

XXXXXXXXXXXXX
abcdefg 1020 10:30
[1000]  3000

我通过./command1 | grep '^\[' | awk 'print $2'提取模式,因此它将打印出3000,这是我想要的值。
我想把3000作为command2./command2 3000的参数。我该怎么做?

最佳答案

您可以使用xargs将输入传递给新命令。在您的示例中,还需要在awk参数中包含大括号。

./command1 | grep '^\[' | awk '{ print $2 } ' | xargs ./command2

或者更简洁
.command1 | awk '/^\[/ { print $2 }' | xargs ./command2

例子:
echo "[1000]  3000" | awk '/^\[/ { print $2 }' | xargs echo

输出:
3000

关于linux - 使用管道的结果作为另一个命令的参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19919037/

10-12 03:41