UNIX和DOS/Windows系统的纯文本格式的换行方式是不同的,基于DOS/Windows的文本文件在每一行末尾有一个CR(回车)和LF(换行),而UNIX文本只有一个换行。
如果想将一个Unix文本转换为Windows文本,可以使用如下的sed命令行
sed -e 's/$/\r/' myunix.txt > mywin.txt
在该脚本中,'$'规则表达式将与行的末尾匹配,而'\r'告诉sed在其之前插入一个回车。在换行之前插入回车,立即,每一行就以CR/LF结束。
虽然很多程序不在乎DOS/Windows格式的CR/LF文本文件,但是有几个程序却在乎,最著名的是bash,只要一遇到回车,它就会出问题。

本文介绍了如何使用sed命令在Unix和Windows文本格式之间进行转换。针对Unix文本转Windows文本,可以使用`s/$/
/`命令添加回车符;对于Windows文本转Unix文本,使用`s/.$//`命令删除末尾的回车符。这种方法对于处理bash等对回车敏感的程序尤为重要。
最低0.47元/天 解锁文章
1251

被折叠的 条评论
为什么被折叠?



