【linux学习笔记】windows与linux换行符转换(unix2dos dos2unix) 字符编码转换(iconv)

来源:互联网 发布:淘宝职位仓库打包招聘 编辑:程序博客网 时间:2024/06/05 06:07

unix2dos dos2unix

dos使用的断行字符为^M$,称为CR与LF两个符号。而在linux下,则是仅有LF($)这个断行符号。

linux执行指令的时候,是按照enter键来判断,而linux的enter是LF符号,而dos下enter为CRLF,多了一个^M出来。因此执行shell script时会出现错误。
可以通过unix2dos,dos2unix来进行相互转换。
语法:

unix2dos [-kn] file [newfile]

-k表示保留档案原来的mtime,也就是修改时间。(即本次修改不更改档案的修改时间)
-n表示保留原来的档案,把转变后的档案输出到新档案newfile。

例子

unix2dos -k filename
dos2unix -kn filename newfile

dos换行符下的档案会比linux下的档案大,因为多^M字符。


icnov

如果需要进行语系编码间的转换,可以用到icnov这个命令。
语法:

icnov –list
icnov -f old -t new filename [-o newfile]

-icnov –list列出支持的语系
-f 表示from,后边接原来编码
-t 表示to,后边接想转换的编码
-o 表示保留原来档案,建立新档案,档案名称为newfile。

例子

icnov -f gb2312 -t utf8 -o file.utf8

没怎么用过这个命令,不过看鸟哥书上写的把utf8(繁体中文)转为简体中文的UTF8时,是先转到gb2312,再转到utf8(简体中文)。是这么写的:

iconv -f utf8 -t big5 vi.utf8 | iconv -f big5 -t gb2312 | iconv -f gb2312 -t utf8 -o vi.gb.utf8

0 0
原创粉丝点击