Linux 管道参数:echo";价值1价值2“价值”命令$1$2
我使用Sed获取了两个有趣的值。现在我想把这两个值作为参数发送给Curl。我已经成功地使用xargs将Sed输出管道化到Curl,并且只使用了一个参数,但是我无法为一个命令使用两个参数 echo“value1”“value2”| curl--数据'valA=$1&valB=$2' 我被困在理论和实践两个方面。我不打算使用bash脚本Linux 管道参数:echo";价值1价值2“价值”命令$1$2,linux,curl,sed,command-line-arguments,xargs,Linux,Curl,Sed,Command Line Arguments,Xargs,我使用Sed获取了两个有趣的值。现在我想把这两个值作为参数发送给Curl。我已经成功地使用xargs将Sed输出管道化到Curl,并且只使用了一个参数,但是我无法为一个命令使用两个参数 echo“value1”“value2”| curl--数据'valA=$1&valB=$2' 我被困在理论和实践两个方面。我不打算使用bash脚本 [我正在运行tshark,将输出管道化到sed,并希望将该输出管道化到curl,以便在远程数据库中记录数据。]如果您不能运行sed两次(例如,您在实时tshark流
[我正在运行tshark,将输出管道化到sed,并希望将该输出管道化到curl,以便在远程数据库中记录数据。]如果您不能运行sed两次(例如,您在实时tshark流上执行此操作),则Backticks听起来是最好的选择:
假设您可以让sed输出类似.csv(foo\tbar)的内容: 有关GNU Parallel的更多信息,请访问: 在电视上观看介绍视频
浏览教程(man parallel_教程)。你的命令行会喜欢你的 只要您不希望在将来的命令中使用valA和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 ; }
在您的示例中,只有一个参数使再次使用xargs变得容易。当然,您必须首先组合并格式化参数流(例如,使用sed)。
$ 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 ; }