我创建一个以逗号作为分隔符的数组:
echo "${myarray[*]}"
# prints: 22,3,2,0,22,4,5,8,22,4,3,6
我想将它以四块为单位打印到终端,带有换行符,换行符前没有逗号。例如:
22,3,2,0
22,4,5,8
22,4,3,6
我一直在努力尝试让循环使用它,例如:
for i in {0..${#myarray[@]}..4} do
##tried lots of things that didn't work here
done
有人能给我指出正确的方向或如何思考这个问题吗?谢谢。
这个怎么样:
这用于为数组中的每个元素
printf
生成一行输入。该实用程序将这些行分布到每行输出的四个逗号分隔字段中。paste
paste
外壳中无需单独的循环。
无论是什么生成了你的数组元素,它都可以替代
printf
调用,这样你就可以完全绕过创建数组。请注意,
some-command
可以是任意复杂的复合命令。如果保证元素的数量是 4 的倍数且大于 0:
如果不是,则得出:
和
zsh
:修改
$myarray
或:两者都给出:
后者你可以在 bash 中用以下命令执行:
依靠 的
"${array[*]}"
第一个字符来连接元素,$IFS
因为 bash 没有与 zsh 的j
oin 参数扩展标志等效的标志。