vim打開文件中每行末尾都帶有 ^M

爲什麼會出現^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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章