2016 - 2024

感恩一路有你

linux文件最后一行没有换行符 Linux上如何进行换行符转换?

浏览量:1354 时间:2023-04-23 13:06:55 作者:采采

Linux上如何进行换行符转换?

在Linux中,文本文件用

(0a)意思是回车换行,而Windows用

(0d0a)意思是回车换行。所以在Linux中不使用Windows的文本文件老爱会再次出现错误。为了尽量避免这种错误,Linux能提供了两种文本格式相互转化的命令:dos2unix和unix2dos,dos2unix把

能量转化成

,unixtodos把

转变成

下命令dos2unix和unix2dos的使用更加很简单,格式为:dos2unixfilename

假如想更多的打听一下这两个命令,可以栏里点手册:

mandos2unix

它会告诉你dos2unix的初级用法

(二)

Ubuntu下系统默认还没有安装dos2unix工具,不过也没有一个叫这个名字的工具(我在solaris里用过dos2unix,还不知道为么Ubuntu没有)。只不过有一个松蜡工具——tofrodos,下面就说再看看它的安装和使用。

不过还是apt完全安装啦。

(1)安装tofrodos

sudoapt-getinstalltofrodos

事实上它完全安装了两个工具:todos(应该是unix2dos),和fromdos(超过dos2unix)

安装好完即可,现在你也可以进行文本格式的转换啦。

.例如:todosHello.txt(即unix2dosHello.txt)

fromdosHello.txt(即dos2unixHello.txt)

(2)做一些优化

导致习惯了unix2dos和dos2unix的命令,可以不把上面完全安装的两个工具链接成unix2dos和dos2unix,也可以仅仅是起个别名,并放在正常启动脚本里。

步骤:

以下是代码片段:

ln-s/usr/bin/todos/usr/bin/unix2dos

ln-s/usr/bin/fromdos/usr/bin/dos2unix

或者在~里起个别名

vi~

再添加aliasunix2dostodosaliasdos2unixfromdos

(三)

另外要是要在目录中源源不断重命名,这个可以建议使用一加7xargs

.例如:

find./model-name*.sh|xargsfromdos

关于换行符CR和LF的区别?

#39

#39是回车,前者使光标到行首,(carriagereturn)#39

#39是换行,后者使光标向上移动一格,(linefeed)

是回车,return

是换行,newline对于换行这个动作,unix下像是只有一一个0x0A它表示换行(#34

#34),windows下好象也是0x0D和0x0A两个字符(#34

#34),苹果机(MAC OS系统)则常规回车符CR来表示下一行(

)Unix系统里,每行结尾仅有“lt换行r26”,即“

”;Windows系统里面,每行结尾是“lt回车gtlt换行gt”,即“

”;Mac系统里,每行结尾是“lt回车dstrok”,即“

”。一个然后后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变的一行;而Windows里的文件在Unix下再打开的话,在每行的结尾会多车两个^M字符。

Dos和windows需要回车换行CR/LF意思是下一行,即^M$($又不是换行符的来表示,换行符也没表示进去,$是文本结束了EOF的可以表示)而UNIX/Linux区分换行符LF意思是下一行,即

苹果机(MAC OS系统)则需要回车符CR表示下一行,即

CR用符号#39

#39可以表示,十进制ASCII代码是13,十六进制代码为0x0DLF可以使用#39

#39符号表示,ASCII代码是10,十六制为0x0A.因此Windows平台上换行符在文本文件中是使用0d0a两个字节意思是,而UNIX和苹果平台上换行则是不使用0a或0d一个字节它表示.的原因dos风格的换行在用

,把这样的文件上传到unix,有些版本的vi没法识别

,因为vi不显示时在行尾会又出现^M出,可是有些就能识别

,正常吗总是显示回车换行。多多分享本问由科学教育分类达人

换行 dos2unix 文件 系统 一行

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。