Bash从具有不同分隔符的行剪切文本

Bash从具有不同分隔符的行剪切文本,bash,delimiter,cut,Bash,Delimiter,Cut,我有一个值如下的变量: @capability_ids type="list">[LOADBALANCER]</capability_ids>@ enywone能帮我在bash上找到正确的解决方案吗?将awk与正则表达式一起使用:awk-F'[\\[\]]'{print$2}' $ echo '@capability_ids type="list">[L3SWITCH]/capability_ids>@'|awk -F '[\\[\\]]' '{print $2}

我有一个值如下的变量:

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

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

awk
与正则表达式一起使用:
awk-F'[\\[\]]'{print$2}'

$ echo '@capability_ids type="list">[L3SWITCH]/capability_ids>@'|awk -F '[\\[\\]]' '{print $2}'
$ L3SWITCH


我试着提取“负载均衡器”

Administrators MacBook Pro:~$echo“\”list\”>[LOADBALANCER]
@“|awk-F'[]'{打印$2}”
负载平衡器
MacBook Pro管理员:~$

希望有帮助

使用
cut

DeviceTypeDirty="@capability_ids type="list">[LOADBALANCER]</capability_ids>@"
DeviceType="$(echo "$DeviceTypeDirty" | cut -d'[' -f2 | cut -d']' -f1)"

为什么字符串在变量中而不是数组中?你是如何获得这些数据的?它是从文件或外部进程中获得的?您需要完整的数据,还是只需要显示的值?好的,我编辑了一个问题来简化它。只有方括号内的数据-我还有其他问题:您是如何获得数据的?它是从文件或外部进程获得的,您需要完整数据还是只需要显示的字段?这些数据是从外部系统获得的,使用ssh请求,我只需要字段。您将如何使用这些字段?您需要一个接一个地处理它们,还是希望它们都在一个数组中?感谢您复制BigDataLearner的答案。
$ DeviceType=$( echo "$DeviceTypeDirty" | awk -F '[\\[\\]]' '{print $2}')
Administrators-MacBook-Pro:~$ echo "\"list\">[LOADBALANCER]   
</capability_ids>@"|awk -F '[][]' '{print $2}'
LOADBALANCER
Administrators-MacBook-Pro:~$ 
DeviceTypeDirty="@capability_ids type="list">[LOADBALANCER]</capability_ids>@"
DeviceType="$(echo "$DeviceTypeDirty" | cut -d'[' -f2 | cut -d']' -f1)"
echo "$DeviceType"
LOADBALANCER