如何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手册页以获取更多信息。