sinanjj 发表于 2008-4-10 22:48:04

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

大家可以试一试: 找一个乱码文件(我用了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 编辑 ]

walkerxk 发表于 2008-4-11 09:56:04

vi保存的时候会加上文末符0a也就是\n,和xxd没有关系。
你可以这样实验:
echo -n a >test
xxd test
vi test然后:wq保存,然后在xxd test看一下,就会多出一个0a。

sinanjj 发表于 2008-4-11 17:30:42

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

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

sinanjj 发表于 2008-4-12 11:32:26

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

walkerxk 大侠???

sinanjj 发表于 2008-4-14 17:18:52

只好用khexediter了...

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

qexing 发表于 2008-10-16 00:49:09

呵呵,告诉你个好方法,运行VI的时候加”-b“参数,然后保存时就不会再添加0a了

vim -b test
:%xxd
:%xxd -r
页: [1]
查看完整版本: 用vi编辑hex文件用了:%!xxd :%!xxd -r :wq 后文件有变化