widows文本格式和Linux文本格式的区别
[root@centos8 data]#cat linux.txt #linux文本文件 a b c [root@centos8 data]#cat win.txt #windows文本文件 a b c #file命令可看到文件格式有所不同(主要是行结束符的不同) [root@centos8 data]#file win.txt linux.txt win.txt: ASCII text, with CRLF line terminators linux.txt: ASCII text #linux文本文件内容(十六进制) [root@centos8 data]#hexdump -C linux.txt 00000000 61 0a 62 0a 63 0a |a.b.c.| 00000006 #windows文本文件内容(十六进制) [root@centos8 data]#hexdump -C win.txt 00000000 61 0d 0a 62 0d 0a 63 |a..b..c| 00000007 #使用-c查看linux文本文件内容(单字节字符显示) [root@daben ~]# hexdump -c linux.txt 0000000 a \n b \n c \n #此处可观察到 \n 对应十六进制编码0a 0000006 #使用-c查看windows文本文件内容(单字节字符显示) [root@daben ~]# hexdump -c linux.txt 0000000 a 、\r\n b \r\n c \r\n #此处可观察到 \n 对应十六进制编码0a 0000007 ##结论:linux和windows文本文件的主要差异在于回车符的定义。linux使用\n作为行结束符,而window使用\r\n作为行结束符。
Linux和windows文本格式相互转换
#安装转换工具 [root@centos8 data]#dnf -y install dos2unix #将Windows的文本格式转换成的Linux文本格式 [root@centos8 data]#dos2unix win.txt dos2unix: converting file win.txt to Unix format... [root@centos8 data]#file win.txt win.txt: ASCII text #将Linux的文本格式转换成Windows的文本格式 [root@centos8 data]#unix2dos win.txt unix2dos: converting file win.txt to DOS format... [root@centos8 data]#file win.txt win.txt: ASCII text, with CRLF line terminators
转换文件字符集编码
#显示支持字符集编码列表 [root@centos8 ~]#iconv -l #windows7上文本默认的编码ANSI(GB2312) [root@centos8 data]#file windows.txt windows.txt: ISO-8859 text, with no line terminators #查看Linux系统编码 [root@centos8 data]#echo $LANG en_US.UTF-8 #默认在linux无法正常显示文本内容 [root@centos8 data]#cat windows.txt ▒▒▒▒▒▒[root@centos8 data]# #将windows7上文本默认的编码ANSI(GB2312)转换成UTF-8 [root@centos8 data]#iconv -f gb2312 windows.txt -o windows1.txt #修改编码后显示正常 [root@centos8 data]#cat windows1.txt 马哥教育[root@centos8 data]#ll windows1.txt -rw-r--r-- 1 root root 12 Mar 23 10:13 windows1.txt [root@centos8 data]#file windows1.txt windows1.txt: UTF-8 Unicode text, with no line terminators #将UTF-8转换成windows10上文本默认的编码ANSI(GB2312) [root@centos8 data]#iconv -f utf8 -t gb2312 windows1.txt -o windows2.txt [root@centos8 data]#file windows2.txt windows2.txt: ISO-8859 text, with no line terminators