How to remove ^M characters from file in Unix/Solaris

July 21, 2009 · Filed Under General 

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.

# tr -d ‘\r’ <old.file > <new.file>

Alternatively, use its octel representation as follows:

# tr -d ‘\015′ <old.file > <new.file>

Comments

3 Responses to “How to remove ^M characters from file in Unix/Solaris”

  1. ghanshyam on October 30th, 2009 3:53 am

    fine these all are working ..thanks

  2. Nitu on November 17th, 2009 9:05 am

    Hi,

    One more ethod to remove the ^M characters from file in unix.
    Source File = test.txt
    new file= Test1.txt
    cat test.txt| col -b > Test1.txt

    Regards,
    Nitu

  3. Bryan on June 30th, 2010 1:38 pm

    Hi,

    I used the method of Nitu, it works excellent. It’s exactly what I was looking for

    Thanks
    Bryan

Leave a Reply