2

给定以下由jsawk生成的字符串:

[123,456,789]

有没有一种惯用的方式将其转换为 BASH 中的数组?

4

2 回答 2

3

去掉括号,然后用IFS逗号分隔,然后用read.

foo="[123,456,789]"
IFS=, read -a list <<< "${foo:1:-1}"

这可以容纳任何逗号分隔的字符串。

于 2012-08-09T12:54:50.173 回答
1

您只需将标点符号转换为空格。

string='[123,456,789]'
array=(${string//[^0-9]/ })
于 2012-08-09T12:39:00.463 回答