When you sometimes copy a file from Windows to UNIX/Solaris or even Linux systems, you can find these anooying ^M characters everywhere. This is because, the file from Windows is in DOS (ASCII) format and needs to be converted to ISO format.

There are many ways to do this. Let’s start with the easy one look at each of them

1. Use dos2unix utility

Solaris pre-installs dos2unix utility into the system to do this job for you. As the name says, it converts the file from DOS format to UNIX format. To do this the syntax is

# dos2unix <file> <new file>

for instance

# dos2unix test.txt test2.txt

Where the test.txt is the file you want the ^M characters removed and test2.txt is the file stripped of the ^M characters.

You may also overwrite the existing file by mentioning the source and destination files as same:

# dos2unix test.txt test.txt

2. Using VI

Open the file with “vi” editor and type the following:

:%s/^M//g

NOTE: To get the ^M in there, you should type CTRL+V+M

3. Using “tr” utility

“tr” utility is used to translate characters. Using with “-d” deletes a listed string.

dos2unix on Solaris works differently than dos2unix on (say) Linux. On Linux, it will default to replacing linebreaks in the designated file. On Solaris, you much specify an input and an output file, i.e. dos2unix filea.txt fileb.txt