hi everyone

i have a list of mails as:
[email protected][email protected][email protected]gmail
«‘“¥‘~‹@rij
[email protected]i want filter it into
[email protected][email protected][email protected]so i used grep, but it doesn't work at all

this work a few:
grep @ < "$output" | cat >> temp1.txt
grep -v ^@ < temp1.txt | cat >> temp2.txt
grep -v ^* < temp2.txt | cat >> address.txt
but not for all [:punct:] except @ and .
i tried using
grep [qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM1234567890] < temp1.txt | cat >> temp2.txt
grep [$tTmM] < temp2.txt | cat >> address.txt #this for .it and .com [i'm italian xD]
and a lot of variants, but i don't understand how use propely regular expression, can you help me?
final script have data from $output and after fitring them must add(cause it's recursive) them to address.txt
i'll post this script when it will be finished so you can suggest me other things ^^