Suppongo che sia un file CRLF (dos texted file di testo)
[bob@erasmas tmp]$ cat testfile
bird
notbird
[bob@erasmas tmp]$ cat testfile.dos
bird
notbird
[bob@erasmas tmp]$ file testfile
testfile: ASCII text
[bob@erasmas tmp]$ file testfile.dos
testfile.dos: ASCII text, with CRLF line terminators
[bob@erasmas tmp]$ grep '^bird' testfile
bird
[bob@erasmas tmp]$ grep '^bird' testfile.dos
bird
[bob@erasmas tmp]$ grep '^bird$' testfile
bird
[bob@erasmas tmp]$ grep '^bird$' testfile.dos
Nota: questo era su una macchina Linux, in quanto non è specifico per OS X (se questo è effettivamente il problema).
Esegui "file" su file.txt e verifica se ha terminazioni di riga CRLF.