如何使用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
由于
答案 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}'