如何从 csv 文件中查找数据

How to lookup data from a csv file

我有一个数组和一个 csv 文件。我正在尝试从 csv 文件中获取与数组中的数据相匹配的数据。

这是我的数组:

array[12345678876543]=ID00000111
array[87654321234567]=ID00000222

这是来自 csv 文件的数据:

12345678876543,floor1
87654321234567,floor2

我正在尝试获取此输出:

ID00000111 floor1
ID00000222 floor2

我试过这个语法,但我只能得到楼层数。

for key in ${!array[@]}; do
    awk -F, -v serial="${key}" ' == serial { print ; exit}' test.csv
done

我希望有人能帮助我解决我的问题。

我假设您的 csv 文件中的第一个条目是数组的 key

#!/bin/bash

array[12345678876543]=ID00000111
array[87654321234567]=ID00000222

while read -r line; do

    key=$(echo $line | cut -d, -f1)
    val=$(echo $line | cut -d, -f2-)

    echo ${array[$key]} $val

done < test.csv

你也可以做这样的事情,它会更接近你现在所拥有的:

for key in ${!array[@]}; do
    echo ${array[$key]} $(grep "$key" test.csv | cut -d, -f2-)
done