>>185 >>186 IFSをループの外にしてevalでSolaris環境では解決しました。

ありがとう。 Cygwinでは改行コードで怒られます。

#!/bin/sh

IFS=','
while read FILE SW CMD
do

case $SW in
"0" )
echo HOGE ;;
"1" )
cat $FILE | eval $CMD >hogehogehoge;;
esac
done <file

file
-------------------
hoge,0,
hoge,1,sed 's/a\\(b\\)c\\(de\\)f/x\\1y\\2z/',
-------------------

hoge
--------------------
abcdef
------------------
hogehogehoge
------------------
xbydez
-------------------