在 Windows 下我們可以使用 WinHex,而在 macOS 平臺上,有什麼不錯的十六進位制檢視器、編輯器呢?
準備
首先,我們建立一個檔案用於測試。
echo 'welcome' > file1
正文
HexDump
很多類 Unix 系統都包含這個工具。正如其名,功能就是匯出檔案的原始十六進位制資訊。
$ hexdump file1
0000000 6577 636c 6d6f 0a65
0000008
以上輸出就是 welcome
的 ASCII 十六進位制資訊,如果檔案很長,那將會很難與文字資訊對應起來。
我們可以使用 -C
選項來同時列印文字。
$ hexdump -C file1
00000000 77 65 6c 63 6f 6d 65 0a |welcome.|
00000008
如上,w
的十六進位制 ASCII 碼為 77
,e
為 65
。
od
另一個十分常用的工具是 od
。該工具提供 -x
引數用於輸出十六進位制的檔案原始資料。
$ od -x file1
0000000 6577 636c 6d6f 0a65
0000010
同樣,為了讓輸出更加易讀,可使用 -c
引數輸出文字。
$ od -xc file1
0000000 6577 636c 6d6f 0a65
w e l c o m e \n
0000010
xxd
xxd
是一個稍特殊的工具,它還提供了一個 -r
選項,可將十六進位制資訊轉換回原始檔案,可用於編輯 Hex 內容。
$ xxd file1
0000000: 7765 6c63 6f6d 650a welcome.
假設我們有 file2
檔案,內容如下:
$ cat file2
000000: 7765 6c63 6f6d 650a
那麼我們可以使用 -r
選項來將其轉換為原檔案內容:
$ xxd -r file2
welcome
hexyl
sharkdp/hexyl 是一款使用 Rust 編寫的 Hex 檢視器,支援高亮不同種類的位元組。
它並不常見,是我最近在 GitHub 上發現的一個小工具,前些天上到 Trending 狂攬 1k+ Stars。
$ hexyl file1
┌────────┬─────────────────────────┬─────────────────────────┬────────┬────────┐
│00000000│ 77 65 6c 63 6f 6d 65 0a ┊ │welcome_┊ │
└────────┴─────────────────────────┴─────────────────────────┴────────┴────────┘
它還支援使用 -n <N>
選項來限制僅讀取檔案的前 <N>
個位元組。
$ hexyl -n 2 file1
┌────────┬─────────────────────────┬─────────────────────────┬────────┬────────┐
│00000000│ 77 65 ┊ │we ┊ │
└────────┴─────────────────────────┴─────────────────────────┴────────┴────────┘
Vim
Vim
可謂是編輯器界的「重量級武器」了。上文我們介紹的都是 Hex 檢視器,不僅如此,Vim 還提供了直接的編輯功能。
使用 Vim 開啟檔案後,輸入 :% ! xxd
命令,介面將變成類似如下格式:
00000000: 7765 6c63 6f6d 650a welcome.
接著你可以隨意編輯文字了,就像使用 xxd
轉換後進行編輯修改一樣。
完成後,輸入 :%!xxd -r
命令並儲存即可。
參考資料
本作品採用《CC 協議》,轉載必須註明作者和本文連結