删除文件中的 ^M 字符

时间:2023-01-18 17:44:56

删除文件中的 ^M 字符

<script type="text/javascript"><!-- google_ad_client = "pub-9432205671574187"; //LT, 300x250 google_ad_slot = "9869120281"; google_ad_width = 300; google_ad_height = 250; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script><iframe name="google_ads_frame" src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-9432205671574187&amp;dt=1217578812998&amp;lmt=1217566876&amp;output=html&amp;slotname=9869120281&amp;correlator=1217578812998&amp;url=http%3A%2F%2Flinuxtoy.org%2Farchives%2Fdelete_m.html&amp;ref=http%3A%2F%2Fwww.google.com%2Fsearch%3Fhl%3Den%26newwindow%3D1%26client%3Dfirefox-a%26rls%3Dcom.ubuntu%253Aen-US%253Aofficial%26hs%3DLzp%26q%3D%25E5%2588%25A0%25E9%2599%25A4%255EM%26btnG%3DSearch&amp;frm=0&amp;cc=100&amp;ga_vid=1477129393032682800.1217578813&amp;ga_sid=1217578813&amp;ga_hid=1901292427&amp;flash=9.0.124&amp;u_h=1024&amp;u_w=1280&amp;u_ah=976&amp;u_aw=1280&amp;u_cd=24&amp;u_tz=480&amp;u_his=1&amp;u_java=true&amp;u_nplug=5&amp;u_nmime=29" marginwidth="0" marginheight="0" vspace="0" hspace="0" allowtransparency="true" frameborder="0" height="250" scrolling="no" width="300"></iframe>

版权声明: 可在遵循 CC 协议的前提下转载,但必须包含本声明及下列信息.
原载: LinuxTOY
作者: Toy
本文网址: http://linuxtoy.org/archives/delete_m.html

有时候,我们在 Linux 中打开曾在 Win 中编辑过的文件时,会在行尾看到 ^M 字符。虽然,这并不影响什么,但心里面还是有点不痛快。如果想要删除这些 ^M 字符,可以使用 Vim 来轻松搞定它。

在 Vim 的命令模式中输入 :%s/^M$//g 后,回车即会自动删除该文件中的所有 ^M 字符。

那么,这句命令到底是什么意思呢?% 指匹配整个文件,s 是置换的意思,^M 注意要用 Ctrl + V Ctrl + M 来输入,M 后面的 $ 代表匹配行尾的内容,最后的 g 则表示每行中匹配到的内容都要置换。

理解了命令的含义,就好变通使用了,比如说,要将某个文件中的 Vim 全部替换成 VIM,则可以使用这样的命令::%s/Vim/VIM/g

8 Comments

  1. 1 Romeo Commented @ 2006-10-29 10:08 pm

    Thanks for your tip, very useful.

  2. 2 zeal Commented @ 2006-10-30 2:23 am

    ubuntu 中有个pakcage叫做tofrodos,安装以后,里面有两个程序 --- dos2unix, unix2dos,dos2unix应该可以用来完成这篇文章里描述的转换。这两条命令(也有叫做fromdos, todos)应该在绝大部分unix,linux系统下都可以找到。

  3. 3 nomas Commented @ 2006-10-30 11:50 am

    批量的话貌似可以这样:

    find /path -name "*.后缀" | xargs dos2unix

  4. 4 Toy Commented @ 2006-10-30 6:22 pm

    @zeal, nomas:谢谢补充新的方法。

  5. 5 Livid Commented @ 2006-10-30 6:35 pm

    For bunk operations, you can:

    1, apt-get install flip
    2, dos to unix: flip -u
    3, usage: man flip

    Flip is so useful.

  6. 6 Toy Commented @ 2006-10-30 8:00 pm

    @Livid:又是一种好方法。谢谢。

    PS.呵呵,达到了抛砖引玉的效果。

  7. 7 Ryun Commented @ 2006-10-31 2:24 am

    i often use this line to strip character ^M

    %s//r//g

  8. 8 Think in Read » links for 2006-10-31 Pingbacked @ 2006-10-31 9:22 am

    [...] LinuxTOY » 删除文件中的 ^M 字符 (tags: linux) [...]