如何使用awk和bash初始化数组?

时间:2014-06-23 14:56:49

标签: arrays bash shell awk scripting

我正在尝试将文本文件第一行的值存储到数组中。以下是我到目前为止的情况:

arr_values=()

awk '
    NR==1 {
            for (i=0; i<=NF; i++)
               'arr_values[i]'=$i
          }' file.txt

for ((i=0; i<${#arr_values[@]}; i++))
do
   echo arr_values[i]
done

我在初始化阵列时遇到错误主要是因为我不知道如何使用awk来初始化外部阵列。任何建议(仅限awk)?谢谢。

2 个答案:

答案 0 :(得分:2)

你可以这样做:

read -a array <<< $(head -n 1 file)

echo ${array[0]}
echo ${array[1]}

答案 1 :(得分:1)

你可能只是简单地做

read -ra arr_values < file.txt

只处理第一行并像awk那样统一拆分;将其保存到arr_values。无需使用外部二进制命令进行分叉。