質問させてください。LinuxでBASHです。(長文失礼します)

ファイル名:file_a
データ:
1,abc,b,c
2,def,e,f
3,ghi,h,i

これを先頭の数字次第で別ファイルに吐き出したいのですが、
#!/bin/sh

for REC in `cat file_a`
do
echo "$REC" >> record.dat
NUM=`cat record.dat | cut -d "," -f1`
case $NUM in
  1) cut -f1- record.dat >> text1.txt ;;
 2) cut -f1- record.dat >> test2.txt ;;
 *) echo "error";;
esac
     rm record.dat
done
--
forでfile_aを一行ずつ読んで、一時的にrecord.datに格納し、先頭の文字でcaseで振り分けるというやり方をして動かしています。
これで上記のデータであれば動くのですが、
データ:
1,a bc,b,c
2,def,e ,f
3,ghi,h,i
という風に半角スペースが入るとそこで改行と認識されるようで、一行単位で認識をしません。

何か良い方法はないかアドバイスをいただけないでしょうか。よろしくお願いします。