akw:
echo '10,20,30,55,58,47,52,100' | \
awk '{x=split($0,a,","); for (i=1; i <= x; ++i) print a[i]}'
awk usando o separador de campos:
echo '10,20,30,55,58,47,52,100' | \
awk -F ',' '{for(i=1; i <= NF; ++i) print $i}'
sed:
echo '10,20,30,55,58,47,52,100' | sed 's/,/\n/g'
Então, o comando seria, por exemplo:
sed 's/,/\n/g' TMPFILE | xargs -I'{}' grep '{}' data.txt
Ou como usando xargs
talvez:
xargs -a TMPFILE -d, -I'\x' grep '\x\{1\}' data.txt
Ou, se você não quiser usar xargs
; fazendo arquivo padrão com sed:
sed 's/\([^,]\+\),*/^$\n/g' TMPFILE | \
grep -o -f /proc/self/fd/0 data.txt
Ou
tr ',' '\n' < TMPFILE | \
grep -f /proc/self/fd/0 data.txt
Tudo depende do que e como você deseja grep.