背景知识】
^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