arrays - 使用多字符分隔符将字符串拆分为数组
问题描述
我需要将一个字符串拆分为一个数组。我的问题是分隔符是 3 个字符:_-_
例如:
db2-111_-_oracle12cR1RAC_-_mariadb101
我需要创建以下数组:
db2-111
oracle12cR1RAC
mariadb101
类似的问题遵循这种方法:
str="db2-111_-_oracle12cR1RAC_-_mariadb101"
arr=(${str//_-_/ })
echo ${arr[@]}
即使创建了数组,它也被错误地拆分:
db2
111
oracle12cR1RAC
mariadb101
似乎第一项中的“-”字符导致数组的拆分功能失败。你能建议修复它吗?谢谢
解决方案
如果可以,请将_-_
序列替换为另一个可用于字段拆分的单个字符。例如,
$ str="db2-111_-_oracle12cR1RAC_-_mariadb101"
$ str2=${str//_-_/#}
$ IFS="#" read -ra arr <<< "$str2"
$ printf '%s\n' "${arr[@]}"
db2-111
oracle12cR1RAC
mariadb101
推荐阅读
- vba - 如果 Dlookup 在多个表中不符合条件,则显示错误。微软访问
- r - [r] raster 包中的镶嵌()中的“缺少乐趣”错误是什么意思?
- excel - 如何在表中找到与条件匹配的第一列
- ionic2 - TypeError:无法读取 Ionic CLI 2.2.1 + Gulp 4 上未定义的属性“服务:之前”
- node.js - Mongoose 将返回的数据限制为模型
- postgresql - 为什么 pg_search trigram 返回这些意外结果?
- c# - 托管在 Azure Web 应用程序上的 API 返回 JSON 数组,但没有 Name .Net core 3.1
- wordpress - post_meta get_the_ID 在 wordpress 中不起作用
- mysql - 使用 forEach() 和 Node.js 插入数据
- python - 如何在一个范围内除以一个列表?