﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-我的编程乐园-随笔分类-Shell/Bash</title><link>http://www.cppblog.com/deercoder/category/18014.html</link><description>&lt;P&gt;&lt;FONT style="FONT-SIZE: 20px" color=#ff0000&gt;积累，坚持！&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT style="FONT-SIZE: 20px" color=#ff0000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ---------我是一只IT小小鸟&lt;/FONT&gt;&lt;/P&gt;</description><language>zh-cn</language><lastBuildDate>Sun, 08 Jul 2012 09:11:33 GMT</lastBuildDate><pubDate>Sun, 08 Jul 2012 09:11:33 GMT</pubDate><ttl>60</ttl><item><title>如何转换^M行末符号</title><link>http://www.cppblog.com/deercoder/archive/2012/07/07/182123.html</link><dc:creator>deercoder</dc:creator><author>deercoder</author><pubDate>Sat, 07 Jul 2012 14:54:00 GMT</pubDate><guid>http://www.cppblog.com/deercoder/archive/2012/07/07/182123.html</guid><wfw:comment>http://www.cppblog.com/deercoder/comments/182123.html</wfw:comment><comments>http://www.cppblog.com/deercoder/archive/2012/07/07/182123.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/deercoder/comments/commentRss/182123.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/deercoder/services/trackbacks/182123.html</trackback:ping><description><![CDATA[Windows和Linux下面对于行末符的表示不同，Windows下面是\r\n，而Linux则是\n<br />因此，如果在Windows下面编辑的脚本文件，如shell脚本文件，在Linux下面执行失败，会提示多一个^M符号，用VIM打开也会发现增加这个符号。<br /><br />解决办法：<br />1. 用VIM打开，设置编码为unix<br />：set fileformat=unix<br />然后，保存，结尾unix格式。<br /><br />2. 使用VIM的替换功能，替换行末的\r符号即可<br /><span style="color: #444444; font-family: Tahoma, Helvetica, SimSun, sans-serif, Hei; background-color: #ffffff; ">:%s/^M//g<br /><br /></span>3. 使用sed来进行批量处理<br /><span style="font-family: Arial, Helvetica, sans-serif, 瀹嬩綋; line-height: 24px; background-color: #fcf1f5; ">&nbsp;sed &#8217;s/^M//&#8217; filename &gt; tmp_filename</span><br /><br />4. 批量处理（推荐使用）<br />sudo apt-get install dos2unix<br />find . * | xargs dos2unix （对当前目录下面的所有文件执行转换格式的命令）<br /><br />一个需要注意的点：dos2unix需要root权限，我开始的时候没有用sudo运行，提示转换失败，后来利用sudo执行即可。<br />问题的根源来源于：<br />在Windows下面拉取Git上面的代码，结果给版本库所有的文件都加上了行末符号，而在Linux下面再次编辑该文件就发现所有的问题都出现问题，提交的时候又不能<br />把所有的文件都提交成Windows的编码，因为这部分修改是没有意义的，所以需要批量转换。<br /><br /><span style="font-family: Arial, Helvetica, sans-serif, 瀹嬩綋; line-height: 24px; background-color: #fcf1f5; "><br /></span><div class="vimiumHUD" style="right: 150px; opacity: 0; display: none; "></div><div class="vimiumReset vimiumHUD" style="right: 150px; opacity: 0; display: none; "></div><img src ="http://www.cppblog.com/deercoder/aggbug/182123.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/deercoder/" target="_blank">deercoder</a> 2012-07-07 22:54 <a href="http://www.cppblog.com/deercoder/archive/2012/07/07/182123.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>