使用vi编辑binary文件

时间:2022-03-15 16:48:20

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

/usr/bin/xxd

xxd - make a hexdump or do the reverse

例子:

用binary模式启动vi

vi -b test.txt

使用vi编辑binary文件

将所有内容转成hex

:%!xxd

使用vi编辑binary文件

修改你想改的地方;

然后将所有内容转成binary

:%!xxd -r

使用vi编辑binary文件

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

:表示进入vi的命令mode;

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

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

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

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

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

使用vi编辑binary文件

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

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