0

如何使用 shell 脚本读取 2 个 CSV 文件(数据逗号分隔)作为输入并对其进行操作?

文件 1.csv:

ENG_IT,P1234,Ajay,India,ajay.com
ENG_GN,A4324,Raj,England,raj.com

文件 2.csv:

P1234,ajay.com
A4324,raj.com

逻辑:根据两个文件中的公共列(P1234,A4324)读取 File1.csv 的第一列和 File2.csv 的最后一列,并将它们保存为变量,如 var1=ENG_IT var2=ajay.com

谢谢

4

1 回答 1

1

不知道你想对变量做什么,但你可以join两个文件,然后在循环中读取它,如下所示:

join -t, -1 2 -2 1 <(sort -t, -k2 file1.csv) <(sort file2.csv) | while IFS=, read -r -a arr
do
    var1=${arr[0]}
    var2=${arr[5]}
    echo "$var1 $var2"
done

您还可以使用awk打印出字段:

join -t, -1 2 -2 1 <(sort -t, -k2 file1.csv) <(sort file2.csv) | awk -F, '{print $1,$5}'
于 2013-06-25T08:24:48.437 回答