2013-06-25 130 views
0

如何使用shell腳本讀取2個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 

邏輯:閱讀基於公共列在這兩個文件,即File1.csv和File2.csv的最後一列的第一列(P1234,A4324),並保存爲變量等 VAR1 = ENG_IT VAR2 = ajay.com

由於

+0

是不是'file1.csv'(ajay.com和raj.com)中已有的信息? – brice

回答

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}'