Using vi to remove ^M characters in a text file

A text file that contains ^M characters was probably created on a DOS or Windows system and then opened on a Unix system. ^M is the DOS / Windows character for carriage-return, otherwise known as the end of a line in the text file.

To remove the characters, open the text file in vi. While in command mode type:

:% s/^M//g

Note: You may have to type: <ctrl-v><ctrl-m> to create the ^M character. It is not a ^ and M.

Example file with ^M characters throughout:

! Info via SNMP: sysoid=,vendor=Juniper,model=MX480,hostname=900w-mmr-wu-rt-0^M
## Last commit: 2020-06-17 05:04:35 CDT by me ^M
system {^M
    host-name 900w-mmr-wu-rt-0;^M
    time-zone America/Chicago;^M
    internet-options {^M
        /* KB28184 tells us that the Junos default is 1000 ICMP messages per second */^M
        icmpv4-rate-limit packet-rate 1000;^M
        icmpv6-rate-limit packet-rate 1000;^M
        /* Routers shouldn’t process source quench messages (RFC1812) and RFC6633 formally deprecates its handing in other transport protocols. */^M

comments powered by Disqus