ホントは、

cat test|while read line; do echo "$line" | sed -e 's/.*/a/'; done

ってしたいんじゃない?

cat test|while read line; do sed -e "s/.*/a/"; done

だと、1行目を read が喰って、2行目以降は全て sed に入力される
ことになるよ。