我在我的bash脚本中有这个:
CONFIG=$(docker inspect "${CONTAINER}" | jq '.[0].Config.Env')
CONFIG
现在看起来像这样(作为字符串):
[ "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", "site_title=Example", "admin_email=test@test.com", "site_url=www.test.com" ]
我想要的是获得site_url
,所以我尝试了:
cut -d "site_url=" -f 2 <<< "${CONFIG}"
但是使用cut
我只能设置一个字符分隔符。
如何实现从www.test.com
"site_url=www.test.com"
的目标
答案 0 :(得分:1)
您可以再次使用jq
吗?
SITE_URL=$(echo $CONFIG | jq -r '.[1]' | cut -f2- -d=)
答案 1 :(得分:1)
使用awk
拆分函数将行拆分为两部分,然后提取所需内容。
awk '{split($0,a,"site_url="); gsub(/]|\"/,"", a[2]) ;print a[2]}'
答案 2 :(得分:1)
试试这个:
echo [ "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", "site_title=Example", "admin_email=test@test.com", "site_url=www.test.com" ] | awk -F",|=|]" '{ print $8 } '
或者只是在你的情况下:
echo ${CONFIG} | awk -F",|=|]" '{ print $8 } '
答案 3 :(得分:0)
您可以将grep -o
与cut
:
grep -o 'site_url=[^"]*' <<< "$CONFIG" | cut -d= -f2
www.test.com