删除win中的^M 符号
注:后来了解到实际网络上已经有成熟的软件dos2unix,如果联网了的话,可以用yum进行安装,yum search dos2unix,我的是centos6.5 64位,直接安装yum install dos2unix.x86_64,我自己还没验证过。
下面的方法就多次一举了!
网上也有几个删除^M的方法,综合对比选择了一种
sed -i 's/^M/"\n"/g' filename 注意:^M需要这样输入 ctrl+v+m
最好用vim打开,然后启动命令:set ff=unix,将文档设置为unix格式
如果可以的话,建议将此命令写成脚本命令,放在/usr/bin目录下作为常用命令,具体实现如下
wtu.sh
!/bin/bash -
# change file from win to linux, some file edit on win will contain ^M,maybe cause linux error
src_file=$1
[ -z $src_file ] && echo "input error file name" && exit 1
sed -i 's/^^M$//g' $src_file #留意 ^和$是锚定开头和结尾的意思,即遇到单独一行只有^M的,直接删除不换行
sed -i 's/^M$//g' $src_file
while [[ 1 ]]
do
grep -q ^M $src_file
[ $? -eq 1 ] && break
sed -i 's/^M/\n/g' $src_file
done
echo ":set ff=unix
:wq"|vim $src_file &> /dev/null
#cp wtu.sh /usr/bin/dostounix
#chmod +x /usr/bin/dostounix
测试了一下基本可以用,由于本人能力也有限,不足之处欢迎指正。