使用vi编辑binary文件

原理:使用xxd将当前文件转成hex格式,编辑,然后再转回去

 /usr/bin/xxd

 xxd - make a hexdump or do the reverse

例子:

用binary模式启动vi

vi -b test.txt

将所有内容转成hex

:%!xxd


修改你想改的地方;

然后将所有内容转成binary

:%!xxd -r


那么:%!xxd是什么意思呢?

:表示进入vi的命令mode;

%表示当前文件的所有内容,和1,$一样

!表示要执行Linux命令,它后面跟的是需要执行的Linux命令


所以::%!xxd 和:1,$ !xxd的效果一样;

如果想改变xxd的输出groupsize,可以使用-g。

例如::%!xxd -g 1的输出效果如下。


Note:其实%,$等符合是从ex editor来的。具体可参见Learning the vi and Vim Editors.pdf一书。

http://vim.wikia.com/wiki/Hex_dump

原文地址:https://www.cnblogs.com/keanuyaoo/p/3292321.html