如何在Unix和Windows文本文件之间转换
时间:2020-01-09 10:37:49 来源:igfitidea点击:
如何在Unix和Windows文本文件之间转换换行符[换行符或行尾(EOL)字符]?
换行符充当所有文本文件的行尾。
它是一个特殊字符,在Windows和UNIX操作系统下,此字符的格式略有不同。
用于显示换行符的实际代码在oses之间有所不同,如下所示:
- 对于在MS-Windows操作系统上创建的所有文本文件,几乎所有的Unix命令和文本编辑器都可能在每行末尾显示Ctrl-m(^ M)字符的EOL。
- MS-Windows可能不会显示在UNIX操作系统上创建的所有文本文件的换行或EOL。
选项#1:dos2unix和unix2dos命令
您可以按以下方式使用dos2unix和unix2dos。
要将UNIX文件的换行符转换为MS-Windows,请执行:
$ cat -v input.txt $ unix2dos input.txt output.txt $ cat -v output.txt $ vi output.txt
要将MS-Windows文件的换行符转换为Unix文件,请执行:
$ cat -v input.txt $ dos2unix input.txt output.txt $ cat -v output.txt
选项2:awk命令
您可以使用awk命令将MS-Windows文件转换为Unix格式,执行:
$ cat -v input.txt $ awk '{ sub("\r$", ""); print }' input.txt > output.txt $ cat -v output.txt
您可以将Unix文件的换行符转换为MS-Windows格式,输入:
$ cat -v input.txt $ awk 'sub("$", "\r")' input.txt > output.txt $ cat -v output.txt
请注意,带有-v选项的cat命令用于显示所有非打印字符,例如^和Mnotation,但LFD和TAB除外。