Bizisten nem értem mi a gondod a $2-vel és $4-gyel, ha egyszer tényleg ott vannak az értékek.
Mindegy.
Némi bashista gondolatébresztő:
parsethis() {
local ROW=$1
echo "DEBUG1: \$#=$#"
set -f
eval set $ROW
set +f
echo "DEBUG2: \$#=$#"
echo "\$1=<$1>, \$6=<$6>, \$7=<$7>"
}
while read ROW; do
parsethis "$ROW"
done < teszt.txt