unix2dos (sometimes named todos or u2d) is a tool to convert line breaks in a text file from Unix format (Line feed) to DOS format (carriage return + Line feed) and vice versa. When invoked as unix2dos the program will convert a Unix text file to DOS format, when invoked as dos2unix it will convert a DOS text file to UNIX format.
Contents
Usage
Unix2dos and dos2unix are not part of the Unix standard. Commercial Unixes usually come with their own implementation of unix2dos/dos2unix, like SunOS/Solaris's dos2unix/unix2dos, HP-UX's dos2ux/ux2dos and Irix's to_unix/to_dos.
There exist many open source alternatives with different command names and options like dos2unix/unix2dos, d2u/u2d, fromdos/todos, endlines, flip.
See the manual page of the respective commands.
Alternatives to unix2dos conversion
Similar results can be achieved with different unix tools to change the trailing newline ' ' to a combination of carriage return and newline characters ' ', for example with perl or the GNU implementation of sed in-line editing:
or
For the opposite conversion (dos2unix) it is possible to use, for example, the utility tr with the -d ' ' flag to remove the carriage return characters:
or
or
Note: The above method assumes there are only DOS line breaks in the input file. Any Mac line breaks ( ) present in the input will be removed.
Another alternative to the dos2unix conversion is possible by using the col command that is available on Linux and other Unix-like operating systems, including Mac OS X. In the following case, InFile contains the undesired DOS (^M) line endings. After execution, OutFile is either created or replaced, and contains UNIX line endings. The -b option tells col not to output backspace characters.