問題描述
'^M' 字符在行尾 ('^M' character at end of lines)
當我在 Unix 環境中運行特定的 SQL 腳本時,我在 SQL 腳本的每一行末尾看到一個“^M”字符,因為它回顯到命令行。我不知道 SQL 腳本最初是在哪個操作系統上創建的。
這是什麼原因造成的,我該如何解決?
參考解法
方法 1:
It's caused by the DOS/Windows line‑ending characters. Like Andy Whitfield said, the Unix command dos2unix will help fix the problem. If you want more information, you can read the man pages for that command.
方法 2:
Fix line endings in vi
by running the following:
:set fileformat=unix
:w
方法 3:
The cause is the difference between how a Windows‑based based OS and a Unix based OS store the end‑of‑line markers.
Windows based operating systems, thanks to their DOS heritage, store an end‑of‑line as a pair of characters ‑ 0x0D0A
(carriage return + line feed). Unix‑based operating systems just use 0x0A
(a line feed). The ^M
you're seeing is a visual representation of 0x0D
(a carriage return).
dos2unix will help with this. You probably also need to adjust the source of the scripts to be 'Unix‑friendly'.
方法 4:
The easiest way is to use vi
. I know that sounds terrible but its simple and already installed on most UNIX environments. The ^M is a new line from Windows/DOS environment.
from the command prompt: $ vi filename
Then press ":
" to get to command mode.
Search and Replace all Globally is :%s/^M//g
"Press and hold control then press V then M" which will replace ^M with nothing.
Then to write and quit enter ":wq
" Done!
方法 5:
Try using dos2unix to strip off the ^M.
(by Paul Reiners、Thomas Owens、Tim Abell、ColinYounger、Bernie Perez、Andy Whitfield)