Linux中vi查看,顯示後帶^M符號,怎麼刪除?

背景知識】

^M 是ascii中的'\r', 回車符,是16進制的0x0D,8進制的015,十進制的13。

對於換行這個動作,unix下一般只有一個0x0A表示換行,windows下一般都是0x0D和0x0A兩個字符。

另外:^L 是ascii 0x0C '\f', 換頁控制符。

而對於Linux 的vi,有些版本,比如我當前開發板裏面的vi,是用busybox編譯出來的,不能識別windows下面編輯的,帶0x0D的那些文本文件,所以,你在windows下面編輯一個普通的文本文件,如果裏面有換行,那麼在Linux的vi裏面,對應的那個0x0D就會顯示出一個^M,比如:

1. led on & off^M
eg.^M
echo none > /sys/class/leds/led_green/trigger^M
echo 1 > /sys/class/leds/led_green/brightness^M
echo > /sys/class/leds/led_green/brightness^M
Note: the default switch of trigger is [none]^M

 

【如何消除vi中的^M】

我剛開始去用sed命令:

sed 's/^M//g' file_old > file_new

不成功,輸出的文件,用vi打開,還是帶^M。

後來到網上搜到了可以用的辦法,用tr命令:

 

tr -d "\015" < myfile.txt > myfile_new.txt

 

可以把符號^M(即"\015")去掉,並另存爲新文件myfile_new.txt

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