L23.linux命令每日一练 -- 第三章 文件过滤及内容编辑处理命令 -- iconv和dos2unix命令
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命令相关推荐
- L24.linux命令每日一练 -- 第三章 文件过滤及内容编辑处理命令 -- diff和vimdiff命令
3.17 diff:比较两个文件的不同 3.17.1 命令详解 [命令星级] ★★★★☆ [功能说明] diff命令可以逐行比较纯文本文件的内容,并输出文件的差异. [语法格式] di ...
- 第三章 文件过滤及内容编辑处理命令
3.1 cat cat命令作用: 1.查看文件内容 2.把多个文件合并成一个文件 3.编辑文件内容 4.结合>>和<<EOF进行编辑 5.清空文件内容 -n参数 从1开始对所有 ...
- L29.linux命令每日一练 -- 第四章 文本处理三剑客 -- sed命令
4.2 sed:流编辑器 4.2.1 sed命令语法及参数说明 [命令星级] ★★★★★ [功能说明] sed是Stream Editor(字符流编辑器)的缩写,简称流编辑器.它是Linu ...
- L39.linux命令每日一练 -- 第六章 文件备份与压缩命令 -- scp和rsync
6.5 scp:远程文件复制 6.5.1 命令详解 [命令星级] ★★★★★ [功能说明] scp命令用于在不同的主机之间复制文件,它采用SSH协议来保证复制的安全性.scp命令每次都是全 ...
- L84.linux命令每日一练 -- 第11章 Linux系统管理命令 -- rpm和yum
11.19 rpm:RPM包管理器 11.19.1 命令详解 [命令星级] ★★★★★ [功能说明] rpm命令的全称是Red Hat Package Manager(Red Hat包管理 ...
- L46.linux命令每日一练 -- 第七章 Linux用户管理及用户信息查询命令 -- w和who
7.13 w:显示已登录用户信息 7.13.1 命令详解 [命令星级] ★★★★★ [功能说明] w命令可以显示已经登录系统的用户,并显示用户正在执行的命令. [语法格式] w [op ...
- L32.linux命令每日一练 -- 第五章 Linux信息显示与搜索文件命令 -- dmesg和stat
5.3 dmesg:系统启动异常诊断 5.3.1 命令详解 [命令星级] ★★★☆☆ [功能说明] dmesg用于显示内核环形缓冲区(kernel-ring buffer)的内容.在进行系 ...
- L38.linux命令每日一练 -- 第六章 文件备份与压缩命令 -- zip和unzip
6.3 zip:打包和压缩文件 6.3.1 命令详解 [命令星级] ★★★★☆ [功能说明] zip压缩格式是Windows与Linux等多平台通用的压缩格式.和gzip命令相比,zip命 ...
- L48.linux命令每日一练 -- 第七章 Linux用户管理及用户信息查询命令 -- last、lastb和lastlog
7.17 last:显示用户登录列表 7.17.1 命令详解 [命令星级] ★★★★★ [功能说明] last命令能够从日志文件/var/log/wtmp读取信息并显示用户最近的登录列表. ...
最新文章
- 数据科学的积累:海平面下的冰山 | 清华信息技术研究院郑方
- Scala数组:使用()代替java的[]
- 2019蓝桥杯省赛---java---B---7(外卖店优先级)
- SVN环境搭建详解(来源网络)
- 聚奎中学2021高考成绩查询,江津2017全体高考考生的喜报
- 某直装外挂卡密校验逆向分析
- bootcamp空间不足_Bootcamp安装WindowsXP补丁时C盘空间不足的解决措施
- smplayer变成电视操作步骤
- treefrog之视图 ERB
- Java的抗辩本位制
- YOLO算法是干嘛的?
- 怎么录制明日之后游戏视频
- 实验改变人类:震撼世界的十大科学实验- -
- 做为码农,应该被熟知和关注的技术站点,再也不用担心技术漏洞
- LCHub:vika维格表将 70 万行代码开源了
- Java程序员面试宝典笔记记录(1~3章概括)
- c++十进制二进制(初学教程)
- 云P3芯片助力传统MP3迈向新阶段
- 对MarshalByRefObject的讲解
- IDC报告指点中国大数据江山,华为云何以独占鳌头?
热门文章
- 期货保证金监控中心查询账单
- Python实现Map数据结构
- 鸿蒙IDE的家居设备控制模板使用经验
- 手机图片怎么提取文字?高效渠道一览
- 在Mac使用Wine运行Windows软件:PanDownload_Beat(非虚拟机)
- php百度坐标转腾讯坐标,火星坐标系、百度坐标系、腾讯坐标系的相互转换
- [杂货铺系列]SpringBoot集成ElasticJob遇到的版本不兼容问题
- 2021年11月6日-11月12日(ogre抄写+ue4视频,本周35小时,共1035小时,剩8965小时。)
- windows电脑使用Edge浏览器过程中偶发自动重启
- 基于php的教务选课管理系统毕业设计