我在bash中有一个变量,它是Amazon EMR create命令的输出;
X509.FindType.FindByThumbprint
输出如下:
CLUSTER=$(aws emr create-cluster ...)
echo $CLUSTER
我需要做的是将值{ "ClusterId": "j-9YWMBYN98LN7" }
提取到一个新变量,例如:
j-9YWMBYN98LN7
当然上面的命令不起作用。我试过jq但没有运气。
ID=$CLUSTER.(ClusterId)
问题是我甚至不确定$ CLUSTER是什么类型的。如何在那里提取值ID=$(jq -r '.ClusterId' $CLUSTER)
?感谢
答案 0 :(得分:9)
如果您想使用jq
,可以这样做
ID=`echo ${CLUSTER} | jq -r '.ClusterId'`
答案 1 :(得分:2)
如果
{ "ClusterId": "j-9YWMBYN98LN7" }
给你
ID=$(awk 'BEGIN{FS="\""}{print $4}' <<< "${CLUSTER}")
然后
echo "$ID"
j-9YWMBYN98LN7
应该这样做。
android:Theme.Light
答案 2 :(得分:0)
尝试以下方法:
ID=$(echo "${CLUSTER}" | sed 's/{ "ClusterId": "//' | sed 's/" }//')
这会将j-9YWMBYN98LN7
或最后一组引号之间的任何内容与变量$ID
隔离开来。
我觉得你需要的东西更多,因为你可能正计划使用$ID
的内容来获取某些东西,并且可能有更有效的方法来为你捕获这个值。也许如果您能够更多地解释您计划如何使用该值,我们可以提供更多可操作的答案。