爲何會出現^M?
1. 在windows下的文本文件的每一行結尾,都有一個回車('\n')和換行('\r')
2. 在linux下的文本文件的每一行結尾,只有一個回車('\n');
3. 而在linux下打開windows編輯過的文件,就會在行末尾顯示^M;
4. 注:^M在vim中爲crtl+M
如何解決?
方法一
在vim命令行中輸入
:%s/\r//
%s/^M//
#注意此處^M爲crtl+M,不是字面上的^M
方法二
用dos2unix
dos2unix filename
方法三
sed
sed 's/\r//' filename -i
方法四
批量處理
find -mtime 0 -print0 |xargs -0 sed -i 's/\r//'
find -mtime 0 -print0 |xargs -0 dos2unix
命令解析
find
1. -time
1. -atime 訪問時間(access)
2. -mtime 修改時間(modify)
3. time的時間單位爲day
1. -mtime 0 表示今天以內修改的文件
2. -mtime -3 三天之內
3. -mtime +3 三天之外
2. find默認打印輸出爲-print(換行顯示), -print0 爲不換行輸出
xarg -0
用\0做爲分隔符,分隔字符串
執行以下
![vim打開文件中每行末尾都帶有 ^M](http://static.javashuo.com/static/loading.gif)