在Linux下使用vim配合xxd查看並編輯二進制文件

通常來說文件分爲文本和二進制文件兩大類,文本文件的編輯很容易,Windows下的notepad、UltraEdit都很好用,二進制文件的編輯在Windows下也有很多工具,UltraEdit也不錯,但是Linux下呢?今天終於發現了一個好方法,但是最終出處找不到了。

 

首先創建一個二進制文件:

?
1
2
3
[oracle@logserver tmp]$ echo -n "ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz" > test.bin
[oracle@logserver tmp]$ cat test.bin
ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz[oracle@logserver tmp]$

注意echo 一定要跟上 -n 選項,否則會被自動加上一個換行行,再用vim打開 test.bin

?
1
[oracle@logserver tmp]$ vim -b test.bin

vim 的 -b 選項是告訴 vim 打開的是一個二進制文件,不指定的話,會在後面加上 0x0a ,即一個換行符。

在命令模式下鍵入:

?
1
:%!xxd

image

如果 vim 後面沒有加 -b 選項就會出現可惡的 0x0a:

image

如果有 -b 選項就不會有這種情況:

image

然後進入編輯模式改,改就是了,我將A、B對應的41、42改成61、62,將a、b對應的61、62改成41、42。

image

回到命令模式輸入:

?
1
:%!xxd -r

image

此時可以發現AB和ab的位置互換了。

image

最後在命令模式中輸入 :wq 保存退出即可。

轉自:http://www.cnblogs.com/killkill/archive/2010/06/23/1763785.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章