Sunday 14 April 2013

Remove ^M characters at end of lines in vi

UNIX treats the end of line differently than other operating systems. When editing files in either Windows or UNIX environments, a CTRL-M character is visibly displayed at the end of each line as ^M 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. 

In UNIX, you can escape a control character by preceding it with a CONTROL-V. 

The :%s is a 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).

Alternately you can use dos2unix command to convert as well

No comments: