1. 程式人生 > >vim打開文件中每行末尾都帶有 ^M

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

編輯 技術 單位 時間 如何解決 time 一個 watermark vim

為什麽會出現^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