一個好的網(wǎng)站需要具備什么深圳網(wǎng)站維護(hù)
背景
????????在 Windows 上編輯的文件,放到 Linux 平臺,有時會出現(xiàn)奇怪的問題,其中有一個是 ^M 引起的,例如這種錯誤:
/bin/bash^M: bad interpreter
這個問題相信大家也碰到過,原因是 Windows 和 Linux 關(guān)于換行的表達(dá)方式不同:
- Linux 的換行,在每一行的末尾只有一個換行符(LF)?
\n
, 行尾以?\n
?來標(biāo)識 - Windows 的換行,在每一行的末尾是 一個回車(CR)?
\r
?和一個換行符(LF)?\n
?和,行尾以?\r\n
?來標(biāo)識
例如下圖,行尾有?^M
PS:這個?^M
?就是 Windows 平臺下的回車?\r
, 在 Linux 下被 vim 解釋成了?^M。
解決方法
這里提供幾種思路和方法來解決:
1. 使用?sed?替換
sed -e ‘s/.$//’ win.txt > unix.txt
.$ 來匹配行尾的字符(.不會匹配到\n),windows dos 格式的行尾就是?
^M\n
;將?^M
?替換為空
- 使用?
# cat -A win.txt
?來檢查一下還有沒有?^M
2. 使用?dos2unix(推薦)
-
沒有就先安裝一下?
yum install -y dos2unx
?,大部分 Linux 發(fā)行版都有這個包# dos2unix win.txt
-
使用?
# cat -A win.txt
?來檢查一下還有沒有?^M
3. 利用?vim?處理(推薦)
-
用 vim 打開文件后,可以查看下當(dāng)前的文件系統(tǒng)格式:
-
:set ff?
? -
然后可以更改格式:
set ff=unix
? -
使用?
# cat -A win.txt
?來檢查一下還有沒有?^M