如何使用shell脚本解析2个输入CSV文件

时间:2013-06-25 07:58:28

标签: shell csv

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

File1.csv:

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

File2.csv:

P1234,ajay.com
A4324,raj.com

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

由于

1 个答案:

答案 0 :(得分: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}'