Table of Contents

In VI

To remove the ^M characters at the end of all lines in vi, use:

:%s/^V^M//g

The ^v is a CONTROL-V character and ^m is a CONTROL-M. When you type this, it will look like this:

:%s/^M//g

In UNIX, you can escape a control character by preceeding it with a CONTROL-V. The :%s is a basic search and replace command in vi. It tells vi to replace the regular expression between the first and second slashes (^M) with the text between the second and third slashes (nothing in this case). The g at the end directs vi to search and replace globally (all occurrences).

Another way to get rid of those ^M's:

:%s/\r//g

Using col

cat old.file | col -b > new.file

Using tr

tr -d '\r' <old.file > new.file

You can also use the octal representatiion of ^M. The following gets rid of control-M as well as control-Z (DOS eof marker):

tr -d '\015\032' < file

Source: http://www.tech-recipes.com/rx/150/remove-m-characters-at-end-of-lines-in-vi/