如何UNIX/Linux将DOS新行CR-LF转换为Unix/Linux格式

时间:2020-01-09 10:40:46  来源:igfitidea点击:

如何将DOS换行符CR/LF转换为Unix/Linux格式?
要在DOS和Unix格式之间转换文本文件,您需要使用名为dos2unix的特殊实用程序。
传统上,DOS文本文件将回车和换行符作为其换行符,而Unix文本文件将换行符作为其换行符。

UNIX/Linux命令

您可以使用以下工具:

  • dos2unix(也称为fromdos)将文本文件从DOS格式转换为Unix格式
  • unix2dos(也称为todos)将文本文件从Unix格式转换为DOS格式。
  • sed您可以出于相同目的使用sed命令
  • tr命令
  • Perl

将DOS文件转换为UNIX格式

执行以下命令以转换名为myfile.txt的文件:

$ dos2unix myfile.txt

但是,以上命令不会备份原始文件myfile.txt。
备份原始文件。
原始文件使用原始文件名和扩展名.bak重命名。
执行以下命令:

$ dos2unix -b myfile.txt

将UNIX文件转换为DOS格式

执行以下命令以转换名为myfile.txt的文件:

$ unix2dos myfile.txt
$ unix2dos -b myfile.txt

使用tr命令将Dos转换为Unix

执行以下命令:

tr -d '\r' < input.file > output.file

使用Perl将Dos转换为Unix

执行以下命令:

perl -pi -e 's/\r\n/\n/g' input.file

使用sed命令将UNIX转换为DOS格式

如果使用bash shell,请执行以下命令:

$ sed 's/$'"/`echo \\r`/" input.txt > output.txt

注意:sed版本在不同的UNIX/Linux变体下可能无法工作,请参阅您当地的sed手册页以获取更多信息。

使用sed命令将DOS换行符(CR/LF)转换为Unix格式

如果您使用的是BASH shell,请执行以下命令(按Ctrl-V,然后按Ctrl-M以获取模式或特殊符号)

$ sed 's/^M$//' input.txt > output.txt

注意:sed版本在不同的UNIX/Linux变体下可能无法工作,请参阅本地sed手册页以获取更多信息。