如何在 Bash 脚本中将 DOS/Windows 换行符 (CRLF) 转换为 Unix 换行符 (LF)?
operating systemlinuxmca
在 Windows 和 Unix 系统之间传输文件时,我们经常会遇到与行尾字符相关的问题。这是因为 Windows 中的 EOL 字符在 Unix 中无法识别。因此,要解决文件从 Windows 传输到 Unix 时出现的此问题,我们需要遵循以下方法之一。
使用 dos2unix
dos2unix 命令用于将 Windows 平台的 EOL 字符转换为 Unix 平台的 EOL 字符。大多数 Unix 系统都预装了此命令。下面我们将了解如何使用此命令转换文件本身或保存文件副本。
# 更改文件本身。 dos2unix file_name.txt # 保存文件副本。 dos2unix -n file_name.txt new_file_name.txt
使用 sed
当我们将文件从 Windows 传输到 Unix 平台并打开阅读时,行尾字符显示为 ^M(称为 control-M)。因此,我们使用 sed 命令替换 ^M 字符。我们也可以将编辑后的文件保存为新文件。
sed 's/^M$//' file_name.txt > new_file_name.txt
使用 tr
tr 命令用于翻译或删除字符。在本例中,我们将使用它来删除 Windows 系统中文件中的行尾字符(如果行尾字符显示为 â\râ)。在 Unix 系统中打开时。
tr -d '\r' file_name.txt > new_file_name.txt
上述命令成功执行后,我们可以在 Unix 系统中成功打开文件,而不会显示 Windows 系统中的 EO L 值。
相关文章
有用资源
linux 参考教程 - 该教程包含有关 linux 的更多信息:https://www.cainiaomax.com/linux/

