QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3080|回复: 5

用vi编辑hex文件用了:%!xxd :%!xxd -r :wq 后文件有变化

[复制链接]
发表于 2008-4-10 22:48:04 | 显示全部楼层 |阅读模式
大家可以试一试: 找一个乱码文件(我用了tcpdump的保存文件*.pcap), 用vi打开, :%!xxd转换到hex格式, 吗也别动, :%!xxd -r转换回去,  :wq 保存, 然后和源文件对比, 发现少了几个字节. (我的表现是tcpdump读包时显示*.pcap不完整.)

我仔细的查了一下变化, 是在 :wq这一布, vi自动的把乱码文件(hex)做了改动,

不知道这个问题怎么处理,

khexedit很好用, 但我还是想让vi支持hex的编辑...很多教程说:%!xxd :%!xxd -r :wq 可以, 但是一:wq, hex文件就少些不该少的东西, 是不是和编码有关??

我改了编码, 问题依旧,,  

想请教各位大侠, 这个问题如何处理??

[ 本帖最后由 sinanjj 于 2008-4-10 22:51 编辑 ]
发表于 2008-4-11 09:56:04 | 显示全部楼层
vi保存的时候会加上文末符0a也就是\n,和xxd没有关系。
你可以这样实验:
echo -n a >test
xxd test
vi test然后:wq保存,然后在xxd test看一下,就会多出一个0a。
回复

使用道具 举报

 楼主| 发表于 2008-4-11 17:30:42 | 显示全部楼层

那该怎么去掉这个0a啊???

用vi编辑一个hex文件总不能多0a吧....
回复

使用道具 举报

 楼主| 发表于 2008-4-12 11:32:26 | 显示全部楼层

该怎么去掉这个0a啊???

walkerxk 大侠???
回复

使用道具 举报

 楼主| 发表于 2008-4-14 17:18:52 | 显示全部楼层

只好用khexediter了...

我查了很久, 没有好的方法...
回复

使用道具 举报

发表于 2008-10-16 00:49:09 | 显示全部楼层
呵呵,告诉你个好方法,运行VI的时候加”-b“参数,然后保存时就不会再添加0a了

vim -b test
:%xxd
:%xxd -r
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-27 07:36 , Processed in 0.045014 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表