{
"name":"control_group",
"params":{
"rank_version":"20200229",
"radius":"20120",
"max_num":"49800",
"localjidnk_version":"B092226",
"personal_point_version":"20hdiu226",
"poiokdlnjversion":"289326",
"personal_feature_version":"20200226",
"po_vjisksion":"20200226",
"global_feature_version":"20200226",
"localjidncknrsion":"8923800226",
"alhudjithm_type":"3",
"carpnbhcbrsion":"2017890",
},
"rule":{
"subject":"exp_bucket",
"verb":"=",
"objects":[
[
用shell想获取rank_version的value,shell中没有对json的特定解析方法,所以只能用截取的方法了,
shell截取字符的常用方法:
参考:http://c.biancheng.net/view/1120.html
格式 | 说明 |
---|---|
${string: start :length} | 从 string 字符串的左边第 start 个字符开始,向右截取 length 个字符。 |
${string: start} | 从 string 字符串的左边第 start 个字符开始截取,直到最后。 |
${string: 0-start :length} | 从 string 字符串的右边第 start 个字符开始,向右截取 length 个字符。 |
${string: 0-start} | 从 string 字符串的右边第 start 个字符开始截取,直到最后。 |
${string#*chars} | 从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。 |
${string##*chars} | 从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。 |
${string%*chars} | 从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 左边的所有字符。 |
${string%%*chars} | 从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 左边的所有字符。 |
所以两部就可以拿到rank_version的value了:
a=${line#*rank_version} #步骤一 截取字符串中rank_version之后的所有字符串
rank_version=${a:3:8} #步骤二 #${string: start :length} 从 string 字符串的左边第 start 个字符开始,向右截取 length 个字符。
echo $rank_version
步骤一结果: