在Korn Shell脚本中,与以下语法匹配的字符串变量contents
中包含大量数据:
account_id_0:group_id_0:name_0
account_id_1:group_id_1:name_1
...
account_id_N:group_id_N:name_N
我想在第三个实例中将:
字符上的字符串分割开,以便可以生成另外三个字符串accounts
,groups
和names
格式为:
accounts = account_id_0,account_id_1,...,account_id_N
groups = group_id_0,group_id_1,group_id_N
names = name_0,name_1,name_N
之所以将它们存储在字符串而不是数组中,是为了实现跨环境的可移植性。
我可以使用sed
,cut
或awk
这样的命令来实现此目的吗?
我用来捕获帐户的当前正则表达式为:
[a-zA-Z][0-9]+(?:([a-zA-z]*[0-9]*)*)(?:([a-zA-Z]*[0-9]*)*)
但是我觉得还有一种更有效的选择。
我尝试使用this solution和this solution的组合来实现所需的输出,但是第一个缺少我需要的重复,而后者则是用于文件操作而不是字符串。