How do I convert a file from DOS format to UNIX format (remove CRs from CR-LF line terminators)?

All these are from the [ sed one-liners page]:

sed 's/.$//' dosfile              # assumes that all lines end with CR/LF
sed 's/^M$//' dosfile             # in bash/tcsh, press Ctrl-V then Ctrl-M
sed 's/\x0D$//' dosfile           # GNUism - does not work with Unix sed!

If you want to remove all CRs regardless of whether they are at the end of a line, you can use tr:

tr -d '\r' < dosfile

If you want to use the second sed example above, but without embedding a literal CR into your script:

sed $'s/\r$//' dosfile            # BASH only

All of the previous examples write the modified file to standard output. Redirect the output to a new file, and then mv it over top of the original.

There are many more ways: