我写这个脚本
Lorem ipsum {# gallery src=[holiday_images/london] width=[400] height=[300] #} sid amet {# gallery src=[holiday_images/paris] width=[400] height=[300] #}
但是所有这些(awk或sed)都是一样的
array(1) {
[0] =>
array(7) {
[0] =>
string(141) "{# gallery src=[holiday_images/london] width=[400] height=[300] #} sid amet {# gallery src=[holiday_images/paris] width=[400] height=[300] #}"
[1] =>
string(3) "src"
[2] =>
string(96) "holiday_images/london] width=[400] height=[300] #} sid amet {# gallery src=[holiday_images/paris"
[3] =>
string(5) "width"
[4] =>
string(3) "400"
[5] =>
string(6) "height"
[6] =>
string(3) "300"
}
}
我的目标是将令牌放入变量中以备后用。 预先谢谢你们。
答案 0 :(得分:1)
您可以将结果保存到文件中,并在文件上使用grep命令,而不是使用cURL的直接结果。 可能是这样的:
curl -o boulou.txt http://localhost/identity/v3/auth/tokens && cat boulou.txt | grep "X-Subject-Token" | awk '{printf $2}'
编辑,如果只希望获得所需的输出,请将--silent
添加到cURL命令:
curl -o boulou.txt http://localhost/identity/v3/auth/tokens --silent && cat boulou.txt | grep "X-Subject-Token" | awk '{printf $2}'
编辑2:如果要导出它并删除文件,则可以使用以下内容:
export OS_TOKEN=$(curl -o billy.txt hhttp://localhost/identity/v3/auth/tokens --silent && cat billy.txt | grep "X-Subject-Token" | awk '{printf $2}') && rm billy.txt
答案 1 :(得分:0)
“当内容存储在变量中时,当我将其传递给JSON文档时,如何使用grep / awk从curl中提取字段中的标头?”确实是一个非常棘手且独特的问题。
但是,如果您逐步模拟出代码的每个部分以缩小范围,您会发现这是您可以研究或询问的更简单的问题:
如何对变量内容使用grep / awk?
我有一个包含HTTP标头的变量,我想提取其中一个的值。这是一个示例:
variable='Foo: 1 Bar: 2 Baz: 3'
这就是我试图从
2
获得Bar
的原因:# Just hangs tokenizer1=$variable `grep "Bar" | awk '{printf $2}'` # Is empty tokenizer2=$variable | `grep "Bar" | awk '{printf $2}'`
答案是使用echo
传递内容,以便grep可以在stdin上读取它:
tokenizer3=$(echo "$variable" | grep "Bar" | awk '{printf $2}')
这很容易应用于您的示例:
tokenizer3=$(echo "$token" | grep "X-Subject-Token" | awk '{printf $2}')
echo "The value is $tokenizer3"