bash printf 两个数组两列

bash printf two arrays in two columns

我假设数组 ar1 和 ar2 我希望将这两个数组打印在两列中。

  printf "%s\t%s\n" "${ar1[@]}" "${ar2[@]}"

有什么想法吗?

假设数组元素不包含换行符,paste 可以完成这项工作:

ar1=(1 2 3 4 5 6)
ar2=(a b c d e f)
paste <(printf "%s\n" "${ar1[@]}") <(printf "%s\n" "${ar2[@]}")
1   a
2   b
3   c
4   d
5   e
6   f

否则纯 BASH 循环:

for ((i=0; i< "${#ar1[@]}"; i++)) do printf "%s\t%s\n" "${ar1[$i]}" "${ar2[$i]}"; done
1   a
2   b
3   c
4   d
5   e
6   f