初歩的な質問だと思うのだがどうしても調べてみてわからなかった。

FreeBSD9で/bin/shのとき、
3文字の連続した英数字を行末とした文字列がある場合に処理を続けたいと思っていて、
awk -F ',' '$1 ~ /[0-9a-zA-Z]\{3\}$/{print $1}'
とか
grep -e "[0-9a-zA-Z]\{3\}$"
がが思っている挙動をしてくれない。

Shift_JISなCSVファイルを処理している中で、sedで「"」消すとかはしているのだけれど
「$」がどうも認識されていないように思えた。
「\$」とやっても同じで、エスケープできていないのかそもそも正規表現の書き方間違っているのか…