Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 管道参数:echo";价值1价值2“价值”命令$1$2_Linux_Curl_Sed_Command Line Arguments_Xargs - Fatal编程技术网

Linux 管道参数:echo";价值1价值2“价值”命令$1$2

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流

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

echo“value1”“value2”| curl--数据'valA=$1&valB=$2'

我被困在理论和实践两个方面。我不打算使用bash脚本


[我正在运行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 ; }