Você pode poder fazer isso com join
se mesclar os dois primeiros campos em uma única chave, substituindo o separador por vírgula por um caractere que você pode ter certeza de que não aparecerá em seu dados. Observe que, como join
exige que os dados sejam classificados no campo de junção, isso só funcionará se isso não alterar a ordem lexical dos dados.
Por exemplo:
$ join -t, -a1 -a2 -e0 -o0,1.2,2.2 <(sed 's/,/;/' file1) <(sed 's/,/;/' file2) | sed 's/;/,/'
Storm_ID,Cell_ID,Wind_speed,Storm_surge
2,10236258,27,0
2,10236299,0,0.27
2,10236300,58,0.27
2,10236301,25,0.35
2,10240400,0,0.35
2,10240401,0,0.81
3,10240400,51,0
4,10240402,0,0.11