2013-12-23 32 views
2

我已经使用Sed来抓住两个有趣的值。现在我想将这两个值作为参数发送给Curl。我已经成功地将Sed输出管道输出到Curl,只有一个参数使用xargs,但是我无法为一个命令使用两个参数。

echo“value1”“value2”|卷曲--data '瓦拉= $ 1 &值Valb = $ 2' http://example.com

我停留在理论和实践。我不打算使用bash脚本。

[我正在运行tshark,管道输出到sed,并希望管道输出卷曲,以便在远程数据库中记录数据。 ]

+0

在你的例子中只有一个参数可以很容易地再次使用xargs。当然,你必须首先结合并格式化参数流(例如用sed)。 – Basilevs

回答

1

只要你不希望使用瓦拉和值Valb在未来的命令,你可以使用read存储来自您的退出命令的空格分隔输出:

$ echo foo bar | { read var1 var2 ; echo $var1 $var2 ; } 
foo bar 

这意味着你可以做:

echo "value1" "value2" | { read a b ; curl --data 'valA=$a&valB=$b' http://example.com ; } 
0

反引号听起来就像是最好的选择,如果您不能运行sed的2倍(例如你在现场tshark的流这样做):

curl --data $(printf "valA=%s&valB=%s" `tshark --whatever | sed -e whatever`) 
相关问题