擅长:python、mysql、java
<p>用锥子的方法。</p>
<pre><code> awk -F, 'NR==FNR{a[$2]=$0;next}
{split($4,b,";");x=b[1]}
(x in a)&&!c[x]++{d[x]=$5}
($5 in a){d[$5]=$5}
END{n=asorti(a,e);for(i=1;i<=n;i++)print a[e[i]]","d[e[i]]}' CSV1 CSV2
</code></pre>
<p>输出</p>
<pre><code>id1,main_data1,a1,a2,a3,data13
id2,main_data2,b1,b2,b3,data3
id3,main_data3,c1,c2,c3,main_data3
id4,main_data4,d1,d2,d3,data7
id5,main_data5,e1,e2,e3,
</code></pre>