シェルで2つのcsvファイルを一行ずつ読み込み結合

大量のレコードに対し、2つのcsvファイルをシェルで結合する方法。
やりたかったのは、right.csvの各行に対して、left.csvの組み合わせを結合し、
出力ファイル(output.csv)を生成すること。

left.csv

number,name
01,hoge
02,fuga
03,hogehoge
04,fugafuga

right.csv

taskNumber,taskName
100,eat
200,sleep
300,walk
400,work

output.csv

number,name,taskNumber,taskName
01,hoge,100,eat
01,hoge,200,sleep
01,hoge,300,walk
01,hoge,400,work
(省略)
.
.
04,fugafuga,400,work

ループ処理で1行ずつテキストを読み込む構文

while read ブロック変数
do
  処理
done < 読み込みファイル

サンプルスクリプト

#!/bin/bash

#出力ファイルの存在チェック
#存在していれば削除
if [ -e output.csv ]; then
  rm -f output.csv
fi

#headコマンドでheaderのみを取得
#結合してoutput.csvへ出力
leftHeader=$(head -n 1 left.csv)
rightHeader=$(head -n 1 right.csv)

echo "${leftHeader},${rightHeader}" >> output.csv

#headerを除いて一行ずつループで取得
#結合してoutput.csvへ出力
tail -n +2 left.csv | while read line1
do
  number=`echo ${line1} | cut -d , -f 1`
  name=`echo ${line1} | cut -d , -f 2`

  tail -n +2 right.csv | while read line2
  do
    taskNumber=`echo ${line2} | cut -d , -f 1`
    taskName=`echo ${line2} | cut -d , -f 2`
    echo "${number},${name},${taskNumber},${taskName}" >> output.csv
  done
done

スクリプト書いたら、実行して気長に待つ。。