欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

hexdump 工具使用 和 .txt 文件的二进制查看

程序员文章站 2023-04-04 18:01:49
最近使用txt文件进行数据处理的时候,突然发现txt文件是怎样编码数据的了,它是以二进制来进行存储的吗?为了知道这个情况,我使用hexdump工具进行查看txt文件的二进制形式,并顺道进行学习了hexdump文件的使用: hexdump 一般用来查看“二进制”文件的十六进制编码,但实际上它能查看任何 ......

最近使用txt文件进行数据处理的时候,突然发现txt文件是怎样编码数据的了,它是以二进制来进行存储的吗?为了知道这个情况,我使用hexdump工具进行查看txt文件的二进制形式,并顺道进行学习了hexdump文件的使用:

hexdump 一般用来查看“二进制”文件的十六进制编码,但实际上它能查看任何文件,而不只限于二进制文件:

hexdump [选项] [文件]…
-n length:格式化输出文件的前length个字节
-c:输出规范的十六进制和ascii码
-b:单字节八进制显示
-c:单字节字符显示
-d:双字节十进制显示
-o:双字节八进制显示
-x:双字节十六进制显示
-s:从偏移量开始输出
-e 指定格式字符串,格式字符串由单引号包含,格式字符串形如:’a/b “format1” “format2”。每个格式字符串由三部分组成,每个由空格分割,如a/b表示,b表示对每b个输入字节应用format1格式,a表示对每个a输入字节应用format2,一般a>b,且b只能为1,2,4,另外a可以省略,省略a=1。format1和format2中可以使用类似printf的格斯字符串。
%02d:两位十进制 %03x:三位十六进制 %02o:两位八进制 %c:单个字符等 %_ad:标记下一个输出字节的序号,用十进制表示 %_ax:标记下一个输出字节的序号,用十六进制表示 %_ao:标记下一个输出字节的序号,用八进制表示 %_p:对不能以常规字符显示的用.代替 同一行显示多个格式字符串,可以跟多个-e选项

常用命令:

格式化输出文件

hexdump test

格式化输出文件的前10个字节

hexdump -n 10 test

格式化输出文件的前10个字节,并以16进制显示

hexdump -n 10 -c test

格式化输出从20开始的10个字节,并以16进制显示

hexdump -n 10 -c -s 20

使用hexdump 查看文本文件:

the licenses for most software and other practical works are designed
to take away your freedom to share and change the works.  by contrast,
the gnu general public license is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users.  we, the free software foundation, use the
gnu general public license for most of our software; it applies also to
any other work released this way by its authors.  you can apply it to
your programs, too.
hexdump -c hexdump.txt

查看结果:

hexdump 工具使用 和 .txt 文件的二进制查看

可见,txt文件本身是没有任何格式的,只是对ascii字符进行转译;所以txt文件也能以 'rb' 二进制的形式进行打开并按照每次

8个bit进行读取,并进行解析;

参考文件: