刪除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
測試了一下基本可以用,由於本人能力也有限,不足之處歡迎指正。