How to find a garbage entry in a column wise text file in Linux?

Suppose I have a file containing :-

1 Apple $50
2 Orange $30
3 Banana $10
4 Guava $25
5 Pine@apple $12
6 Strawberry $21
7 Grapes $12

In the 5th row, @ character inserted. I want through sort command or by any other way this row should either on top or bottom.

By sort command garbage entry in numeric columns are working but not on non-numeric columns.:confused:

Please help

Dipankar

Try:

awk '$2~"[^a-zA-Z]"{g[NR]=1}{a[NR]=$0}END{for (i in g) print a; for (i=1;i<=NR;i++) if (!(i in g)) print a}' file