我在bash中有一个变量,它是Amazon EMR create命令的输出;
CLUSTER=$(aws emr create-cluster ...)
echo $CLUSTER
Run Code Online (Sandbox Code Playgroud)
输出是这样的:
{ "ClusterId": "j-9YWMBYN98LN7" }
Run Code Online (Sandbox Code Playgroud)
我需要做的是将值提取j-9YWMBYN98LN7到一个新变量,如:
ID=$CLUSTER.(ClusterId)
Run Code Online (Sandbox Code Playgroud)
当然上面的命令不起作用.我试过jq但没有运气.
ID=$(jq -r '.ClusterId' $CLUSTER)
Run Code Online (Sandbox Code Playgroud)
问题是我甚至不确定$ CLUSTER是什么类型的.我如何在那里提取价值j-9YWMBYN98LN7?谢谢
CS *_*Pei 10
如果你想使用jq,你可以这样做
ID=`echo ${CLUSTER} | jq -r '.ClusterId'`
Run Code Online (Sandbox Code Playgroud)
如果
echo $CLUSTER
Run Code Online (Sandbox Code Playgroud)
给你
{ "ClusterId": "j-9YWMBYN98LN7" }
Run Code Online (Sandbox Code Playgroud)
然后
ID=$(awk 'BEGIN{FS="\""}{print $4}' <<< "${CLUSTER}")
Run Code Online (Sandbox Code Playgroud)
应该这样做。
echo "$ID"
j-9YWMBYN98LN7
Run Code Online (Sandbox Code Playgroud)