viewとvi(vim)を利用したHEX dumpの表示と修正方法

1.概要

システムを運用していると想定していないデータが入力されてエラーが発生することがあります。テキスト形式のデータは目視確認することができるので、入力データはテキスト形式を多用します。しかし、テキストデータを目視しても見えない文字の影響でエラーとなる場合があります。改行コードがその例です。

目視できない文字を確認するためにはHEX表示を利用します。viやviewを利用して、HEX dump表示や修正を実施できます。viでHEX修正を実施することは滅多にありませんが、viewで内容を読みたいときはあります。操作方法は同じなのでviewを利用して表示する方法を記述します。

2.詳細

試験用のテキストファイルを作成して、viewで表示後、HEX表示モードへ変更します。更に、HEX表示モードを解除して元の表示に戻します。

(1) テスト用のファイルを作成します

$ echo "0123456789" > test.txt
viewで参照します。
$ view test.txt

[表示内容]
0123456789

(2) HEXモードに変更します

ESC
:%!xxd

W10: 警告: 読込専用ファイルを変更します
とメッセージが表示され、HEX表示に変わります。

[表示内容]
00000000: 3031 3233 3435 3637 3839 0a              0123456789.

(3) HEXモードを解除します

ESC
:%!xxd -r

表示が戻ります。

[表示内容]
0123456789

3.所見

データの確認にはHEX表示のバイナリエディタが必要になる場合があります。特に読めない文字(^M等の改行コード)が影響して、処理が思わぬ結果となる場合には必須です。viewで利用するとデータを壊す心配もなく便利です。

私は、必ずviewでデータチェックを最初に実施します。変更が必要な場合に、vi(vim)を利用して修正をします。viewとvi(vim)の操作手順は同じなので失敗することもありません。

参考

[本ブログ内参照]
ubuntu/LinuxMintでcronを利用したshutdown処理
[外部サイト参照]
viでバイナリ編集メモ

コメント

過去30日間に良く読まれた記事

miniPCのBMAXでWindows11のsecure boot設定漏れでトラブル発生

Windows95/98のPCゲームをUbuntu/LinuxMintの最新PCで楽しむ方法 ( KVM / Wine / dosbox-x / midi )

LinuxMint/ubuntuにWine 11導入を試しました ( LinuxMint 21.3 / 22.3 ubuntu 22.04 / 26.04 Wine 11.0 / 11.6 / 11.8 / 11.13 )