Bash使用不同的分隔符剪切文本

时间:2016-12-28 13:18:52

标签: bash delimiter cut

我有一个值如下的变量:

@capability_ids type="list">[LOADBALANCER]</capability_ids>@

需要从此字符串类型的设备中提取(LOADBALANCER)。

我尝试过使用剪切,但不知道如何使用不同的分隔符来剪切命令。

DeviceType=$( echo $DeviceTypeDirty | cut -d'[' -f1)

enywone能帮助我在bash上找到正确的解决方案吗?

3 个答案:

答案 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