通常來說文件分為文本和二進制文件兩大類,文本文件的編輯很容易,Windows下的notepad、UltraEdit都很好用,二進制文件的編輯在Windows下也有很多工具,UltraEdit也不錯,但是Linux下呢?今天終於發現了一個好方法,但是最終出處找不到了。
首先創建一個二進制文件:
1
[Oracle@logserver tmp]$
echo
-n
"ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz"
>
test
.bin
2
[oracle@logserver tmp]$
cat
test
.bin
3
ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz[oracle@logserver tmp]$
注意echo 一定要跟上 -n 選項,否則會被自動加上一個換行行,再用vim打開 test.bin
1
[oracle@logserver tmp]$ vim -b
test
.bin
vim 的 -b 選項是告訴 vim 打開的是一個二進制文件,不指定的話,會在後面加上 0x0a ,即一個換行符。
在命令模式下鍵入:
1
:%!xxd
如果 vim 後面沒有加 -b 選項就會出現可惡的 0x0a:
如果有 -b 選項就不會有這種情況:
然後進入編輯模式改,改就是了,我將A、B對應的41、42改成61、62,將a、b對應的61、62改成41、42。
回到命令模式輸入:
1
:%!xxd -r
此時可以發現AB和ab的位置互換了。
最後在命令模式中輸入 :wq 保存退出即可。