vim打開文件中每行末尾都帶有 ^M
阿新 • • 發佈:2018-02-04
編輯 技術 單位 時間 如何解決 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