bash将列保存到单独的数组中

时间:2018-08-11 15:42:23

标签: bash shell

我正在尝试读取一些数据,这些数据具有(N)行,每行具有(M)列。我想阅读它们并将每一列存储到一个单独的数组中,以便以后可以访问它们。

使用/etc/passwd作为工作示例数据,我已经

i=0
while IFS=":" read c1 c2; do
    X+=($c1)
    Y+=($c2)
    i=$(($i+1))
done < /etc/passwd
echo ${X[0]}
echo ${Y[1]}

这将按预期工作。但是,如果我想输入输入,就像这样:

i=0
cat /etc/passwd | \
while IFS=":" read c1 c2; do
    X+=($c1)
    Y+=($c2)
    i=$(($i+1))
done
echo ${X[0]}
echo ${Y[1]}

X行之后的数组Ydone都为空。 有什么问题吗?

0 个答案:

没有答案