If you use more than one of Unix, Windows and a Macintosh, you may have come across the "newline characters" problem: they all use different codes for the end of a line. These codes are combinations of the ^M and ^J characters (that is, Ctrl-M and Ctrl-J).

Unix      ^J
Windows   ^M^J
Mac       ^M

These characters are also known as "carriage return" and "line feed" or by their octal ASCII codes:

\015   Ctrl-M   Carriage return
\012   Ctrl-J   Line feed

When you have a file which uses the wrong newline convention, what can you do? Transferring it using ftp in ASCII mode should sort it out. Or if you use Emacs 20, you can edit a file which uses any of these conventions, and you can tell which one it uses from the symbol near the bottom right-hand corner:

:   Unix
\   Windows
/   Mac

Finally, here's how to use the Unix tr command to convert Windows or Mac text files to Unix text files:

Windows -> Unix    tr -d '\015' < windowsfile > unixfile
Mac -> Unix        tr '\015' '\012' < macfile > unixfile