如何在 Bash 指令碼中將 DOS/Windows 換行符 (CRLF) 轉換為 Unix 換行符 (LF)?
當我們在 Windows 和 Unix 系統之間傳輸檔案時,通常會遇到與行尾字元相關的問題。這是因為 Windows 中的 EOL 字元在 Unix 中不被識別為 EOL 字元。因此,為了解決此問題,當檔案從 Windows 傳輸到 Unix 時,我們需要遵循以下方法之一。
使用 dos2unix
dos2unix 命令用於將 Windows 平臺的 EOL 字元轉換為 Unix 平臺的 EOL 字元。大多數 Unix 系統都預裝了此命令。下面我們來看看如何轉換檔案本身或在使用此命令時儲存檔案的副本。
# change the file itself. dos2unix file_name.txt # Save a copy of the file. dos2unix -n file_name.txt new_file_name.txt
使用 sed
當我們將檔案從 Windows 傳輸到 Unix 平臺並開啟讀取時,行尾字元顯示為 ^M(稱為控制-M)。因此,我們使用 **sed** 命令替換 ^M 字元。在這裡,我們也可以將編輯後的檔案另存為新檔案。
sed 's/^M$//' file_name.txt > new_file_name.txt
使用 tr
tr 命令用於轉換或刪除字元。在這種情況下,我們將使用它來刪除 Windows 系統檔案中行尾字元,如果在 Unix 系統中開啟時顯示為 â\râ。
tr -d '\r' file_name.txt > new_file_name.txt
上述命令執行成功後,我們就可以在 Unix 系統中成功開啟檔案,而不會顯示來自 Windows 系統的 EO L 值。
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP