我有一个数组,我想垂直打印,但也可以并排打印。 实施例
我有一个包含这些元素的数组,如下所示,用空格分隔,元素中的每个字符用逗号分隔:
0,1,2 3,4,5 6,7,8
我希望它输出:
036
147
258
非常感谢任何帮助!
答案 0 :(得分:2)
ary=(0,1,2 3,4,5 6,7,8)
pr -T -"${#ary[@]}" < <(IFS=,; echo "${ary[*]}" | tr , '\n') | tr -d '[:blank:]'
打印
036
147
258
注意:
< <(...)
语法是process substitution <
)
pr
。pr
是一个将输出列强制转换为列的便捷工具。 -"${#ary[@]}"
选项告诉pr
使用与数组元素相同的列数。pr
的输出发送到第二个tr
,删除任何水平空格。如果你想要逗号,将第二个,请使用:tr
更改为:tr -s '[:blank:]' ,
pr -T -s, -"${#ary[@]}" < <(IFS=,; echo "${ary[*]}" | tr , '\n')