我有一个值如下的变量:
@capability_ids type="list">[LOADBALANCER]</capability_ids>@
需要从此字符串类型的设备中提取(LOADBALANCER)。
我尝试过使用剪切,但不知道如何使用不同的分隔符来剪切命令。
DeviceType=$( echo $DeviceTypeDirty | cut -d'[' -f1)
enywone能帮助我在bash上找到正确的解决方案吗?
答案 0 :(得分:2)
将awk
与正则表达式一起使用:awk -F '[\\[\\]]' '{print $2}'
$ echo '@capability_ids type="list">[L3SWITCH]/capability_ids>@'|awk -F '[\\[\\]]' '{print $2}'
$ L3SWITCH
$ DeviceType=$( echo "$DeviceTypeDirty" | awk -F '[\\[\\]]' '{print $2}')
答案 1 :(得分:2)
我试过并提取“LOADBALANCER”
Administrators-MacBook-Pro:~$ echo "\"list\">[LOADBALANCER]
</capability_ids>@"|awk -F '[][]' '{print $2}'
LOADBALANCER
Administrators-MacBook-Pro:~$
希望有所帮助!
答案 2 :(得分:1)
使用cut
:
DeviceTypeDirty="@capability_ids type="list">[LOADBALANCER]</capability_ids>@"
DeviceType="$(echo "$DeviceTypeDirty" | cut -d'[' -f2 | cut -d']' -f1)"
输出:
echo "$DeviceType"
LOADBALANCER