3.15 iconv:转换文件的编码格式

3.15.1 命令详解

【命令星级】 ★★★☆☆

【功能说明】

​ iconv命令用于转换文件的编码格式。

【语法格式】

iconv [options] [-f from-encoding] [-t to-encoding] [inputfile]
iconf [选项] [原编码] [新编码] [输入文件]

​ **说明:**在iconv命令及后面的选项和文件里,每个元素直接都至少要有一个空格。

【选项说明】

​ 表3-18针对该命令的参数选项进行了说明。

​ 表3-18 iconv命令的参数选项及说明

3.15.2 使用范例

​ **范例3-56:**转换文件编码。

​ Linux系统是UTF-8的编码,而Win7系统是GB2312的编码,从英文字符的角度来说,两者没有区别,但是Windows编辑的中文字符到Linux系统中就会有乱码,需要先转码再处理。

[root@centos7 ~]# cat GB2312.txt #此行是乱码。
Hello.[root@centos7 ~]#
[root@centos7 ~]# iconv -f gb2312 -t utf-8 GB2312.txt  #只用-f参数指定文件原来的编码为gb2312,使用-t参数指定将要转换的编码为utf-8。
Hello.[root@centos7 ~]#

3.16 dos2unix:将DOS格式文件转换成UNIX格式

3.16.1 命令详解

【命令星级】 ★★★☆☆

【功能说明】

​ 将DOS(Windows系统)格式文件转换成UNIX格式(DOS/MAC to UNIX text file format converter)。DOS下的文本文件是以“\r\n”作为换行标志的,而UNIX下的文本文件是以“\n”作为换行标志的。所以在Linux中使用Windows的文本文件时,常常会出现错误。为了避免这种错误,Linux提供了两种文本格式相互转化的命令:dos2unix和unix2dos,dos2unix把Windows文件的“\t\n”转化成Linux文件的“\n”,unix2dos把Linux文件的“\n”转化成Windows文件的“\r\n”。

​ 这个命令也挺好记忆的,dos to unix→dos 2 (two→to)unix→dos2unix

【语法格式】

dos2unix [file]
dos2unix [文件]

说明:

​ 1)在dos2unix命令及后面的选项和文件里,每个元素直接都至少要有一个空格。

​ 2)如果系统没有dos2unix命令可以用yum -y install dos2unix安装。

3.16.2 使用范例

​ **范例3-57:**处理由Windows系统创建的脚本文件。

​ 若是在Windows中用文本文档创建一个Shell脚本,并在创建完成后将这个脚本上传到Linux系统中(很多同学在学习Shell脚本时就是这么干的),那么就会碰到下面的问题:

[root@centos7 ~]# rz -E
rz waiting to receive.
[root@centos7 ~]# cat neteagle_win.sh  #查看上传的文件内容,没有发现异常。
#!/bin/bash
for word in I am neteagle teacher welcome to neteagle trainning class.do [ `echo $word|wc -L` -le 6 ] && \echo $word
done[root@centos7 ~]#
[root@centos7 ~]# sh neteagle_win.sh   #但是执行这个脚本就会报错了。很多同学再三地研究也没有发现哪里出错了!!!
neteagle_win.sh: line 3: $'\r': command not found
neteagle_win.sh: line 4: $'\r': command not found
I
neteagle_win.sh: line 3: $'\r': command not found
neteagle_win.sh: line 4: $'\r': command not found
am
neteagle_win.sh: line 3: $'\r': command not found
neteagle
neteagle_win.sh: line 3: $'\r': command not found
teacher
neteagle_win.sh: line 3: $'\r': command not found
welcome
neteagle_win.sh: line 3: $'\r': command not found
neteagle_win.sh: line 4: $'\r': command not found
to
neteagle_win.sh: line 3: $'\r': command not found
neteagle
neteagle_win.sh: line 3: $'\r': command not found
trainning
neteagle_win.sh: line 3: $'\r': command not found
neteagle_win.sh: line 4: $'\r': command not found
class.
[root@centos7 ~]# cat -A neteagle_win.sh   #其实他们的脚本没有写错,只是在一个不适合的场合下写了个脚本。使用前面学过的cat命令-A参数,查看文件的不可见字符,会发现很多行尾有……M(\r\n),但是Linux是以“\n”结尾的,因此执行这种脚本就会报错。
#!/bin/bash^M$
for word in I am neteagle teacher welcome to neteagle trainning class.^M$do ^M$[ `echo $word|wc -L` -le 6 ] && \^M$echo $word^M$
done[root@centos7 ~]#
[root@centos7 ~]# dos2unix neteagle_win.sh     #使用dos2unix转码一下,直接接文件就可以了,支持同时转换多个文件。
dos2unix: converting file neteagle_win.sh to Unix format ...
[root@centos7 ~]# cat -A neteagle_win.sh   #现在就可以发现文见结尾就是$(\n)。
#!/bin/bash$
for word in I am neteagle teacher welcome to neteagle trainning class.$do $[ `echo $word|wc -L` -le 6 ] && \$echo $word$
done[root@centos7 ~]#
[root@centos7 ~]# sh neteagle_win.sh   #Shell脚本可以正常执行。
I
am
to
class.

L23.linux命令每日一练 -- 第三章 文件过滤及内容编辑处理命令 -- iconv和dos2unix命令相关推荐

  1. L24.linux命令每日一练 -- 第三章 文件过滤及内容编辑处理命令 -- diff和vimdiff命令

    3.17 diff:比较两个文件的不同 3.17.1 命令详解 ​ [命令星级] ★★★★☆ ​ [功能说明] ​ diff命令可以逐行比较纯文本文件的内容,并输出文件的差异. ​ [语法格式] di ...

  2. 第三章 文件过滤及内容编辑处理命令

    3.1 cat cat命令作用: 1.查看文件内容 2.把多个文件合并成一个文件 3.编辑文件内容 4.结合>>和<<EOF进行编辑 5.清空文件内容 -n参数 从1开始对所有 ...

  3. L29.linux命令每日一练 -- 第四章 文本处理三剑客 -- sed命令

    4.2 sed:流编辑器 4.2.1 sed命令语法及参数说明 ​ [命令星级] ★★★★★ ​ [功能说明] ​ sed是Stream Editor(字符流编辑器)的缩写,简称流编辑器.它是Linu ...

  4. L39.linux命令每日一练 -- 第六章 文件备份与压缩命令 -- scp和rsync

    6.5 scp:远程文件复制 6.5.1 命令详解 ​ [命令星级] ★★★★★ ​ [功能说明] ​ scp命令用于在不同的主机之间复制文件,它采用SSH协议来保证复制的安全性.scp命令每次都是全 ...

  5. L84.linux命令每日一练 -- 第11章 Linux系统管理命令 -- rpm和yum

    11.19 rpm:RPM包管理器 11.19.1 命令详解 ​ [命令星级] ★★★★★ ​ [功能说明] ​ rpm命令的全称是Red Hat Package Manager(Red Hat包管理 ...

  6. L46.linux命令每日一练 -- 第七章 Linux用户管理及用户信息查询命令 -- w和who

    7.13 w:显示已登录用户信息 7.13.1 命令详解 ​ [命令星级] ★★★★★ ​ [功能说明] ​ w命令可以显示已经登录系统的用户,并显示用户正在执行的命令. ​ [语法格式] w [op ...

  7. L32.linux命令每日一练 -- 第五章 Linux信息显示与搜索文件命令 -- dmesg和stat

    5.3 dmesg:系统启动异常诊断 5.3.1 命令详解 ​ [命令星级] ★★★☆☆ ​ [功能说明] ​ dmesg用于显示内核环形缓冲区(kernel-ring buffer)的内容.在进行系 ...

  8. L38.linux命令每日一练 -- 第六章 文件备份与压缩命令 -- zip和unzip

    6.3 zip:打包和压缩文件 6.3.1 命令详解 ​ [命令星级] ★★★★☆ ​ [功能说明] ​ zip压缩格式是Windows与Linux等多平台通用的压缩格式.和gzip命令相比,zip命 ...

  9. L48.linux命令每日一练 -- 第七章 Linux用户管理及用户信息查询命令 -- last、lastb和lastlog

    7.17 last:显示用户登录列表 7.17.1 命令详解 ​ [命令星级] ★★★★★ ​ [功能说明] ​ last命令能够从日志文件/var/log/wtmp读取信息并显示用户最近的登录列表. ...

最新文章

  1. 数据科学的积累:海平面下的冰山 | 清华信息技术研究院郑方
  2. Scala数组:使用()代替java的[]
  3. 2019蓝桥杯省赛---java---B---7(外卖店优先级)
  4. SVN环境搭建详解(来源网络)
  5. 聚奎中学2021高考成绩查询,江津2017全体高考考生的喜报
  6. 某直装外挂卡密校验逆向分析
  7. bootcamp空间不足_Bootcamp安装WindowsXP补丁时C盘空间不足的解决措施
  8. smplayer变成电视操作步骤
  9. treefrog之视图 ERB
  10. Java的抗辩本位制
  11. YOLO算法是干嘛的?
  12. 怎么录制明日之后游戏视频
  13. 实验改变人类:震撼世界的十大科学实验- -
  14. 做为码农,应该被熟知和关注的技术站点,再也不用担心技术漏洞
  15. LCHub:vika维格表将 70 万行代码开源了
  16. Java程序员面试宝典笔记记录(1~3章概括)
  17. c++十进制二进制(初学教程)
  18. 云P3芯片助力传统MP3迈向新阶段
  19. 对MarshalByRefObject的讲解
  20. IDC报告指点中国大数据江山,华为云何以独占鳌头?

热门文章

  1. 期货保证金监控中心查询账单
  2. Python实现Map数据结构
  3. 鸿蒙IDE的家居设备控制模板使用经验
  4. 手机图片怎么提取文字?高效渠道一览
  5. 在Mac使用Wine运行Windows软件:PanDownload_Beat(非虚拟机)
  6. php百度坐标转腾讯坐标,火星坐标系、百度坐标系、腾讯坐标系的相互转换
  7. [杂货铺系列]SpringBoot集成ElasticJob遇到的版本不兼容问题
  8. 2021年11月6日-11月12日(ogre抄写+ue4视频,本周35小时,共1035小时,剩8965小时。)
  9. windows电脑使用Edge浏览器过程中偶发自动重启
  10. 基于php的教务选课管理系统毕业设计