问题:shell 字符串[123,456,789]
想用让字符串变成数组(123 456 789)
楼主想先去掉字符串的"[" "]"
array=$(echo "[123,456,789]"|tr -cd [0-9][,])
再替换掉"," 然后就转换成数组了
array=(${array//,/ })
for i in ${array[@]};do
echo $i
done
然而第一步 tr -cd 并没有去掉字符串的"[" "]"....
使用 array=(${//[/ })也去不掉 尴尬了
大佬们"[" 和"]" 如何去掉?
1
lululau 2020-11-03 16:44:34 +08:00
-cd [0-9][,] 为什么会去掉方括号,什么逻辑?
试试:array=($(echo "[123,456,789]"|tr -d '[]' | tr , ' ')) |
2
wuwenzhx OP tr [-cdst][--help][--version][第一字符集][第二字符集]
tr [OPTION]…SET1[SET2] 参数说明: -c, --complement:反选设定字符。也就是符合 SET1 的部份不做处理,不符合的剩余部份才进行转换 -d, --delete:删除指令字符 -c 没有指定"[]" 理论上"[]" 不应该被删除吗? |