Array Bash打印多个数组循环中的元素

时间:2014-05-06 20:08:39

标签: arrays linux bash printing

我有多个阵列(我将其限制为3)&第一次使用数组 数组的长度是相同的。它们对应于相同的记录 所以数组a,b和c值列在下面:

array a   = 1 2 3 4 5 
array b   = a b c d e 
array c   = v w x y z

我需要打印然后内容,所以每行输出都是这样的

1 a v
2 b w
3 c x
4 d y
5 e z

你能帮忙吗?

谢谢

2 个答案:

答案 0 :(得分:1)

这是一个更加令人难以置信的版本(如果你愿意的话):

#!/usr/bin/env bash

# initialize arrays
a=(1 2 3 4 5)
b=(a b c d e)
c=(v w x y z)

# count elements (assuming all arrays are the same size)
numElems=${#a[@]}

# loop over all elements
for (( i = 0; i < numElems; i++ )); do
  # -e ensures that escape sequences such as \t are recognized
  echo -e "${a[i]}\t${b[i]}\t${c[i]}"
done

答案 1 :(得分:0)

这就是我如何解决这个问题,希望有更好的方法。上面列出了3个数组样本,每个数组都有一个值列表。因为它们长度相等。这是可以做到的。 $&#39; \ t&#39;在其间放置一个标签。

s=${#a[@]}
counter=0
echo $counter
while [[ $counter -lt $s ]];
do
echo ${a[$counter]}  $'\t'  ${b[$counter]}  $'\t'  ${c[$counter]}
counter=$(( $counter + 1 ))
done