バイナリを一括して編集するためのコマンドはありますか?
Linuxでバイナリ編集を行うコマンドはあるでしょうか。sed
、awk
のバイナリ版みたいなものを想定しています。このコマンドを使って、例えば複数のファイルの何バイト目を何々の値に一括して書き換える、ということを行いたいと思っています。
検索してecho
とdd
を使う方法を見つけました。(echo
はGNU版)
$ echo -ne '\x<1バイト目>\x<2バイト目>...' | dd of=<ファイル> bs=1 seek=<始バイト> conv=notrunc
ただこの方法だと
1.元ファイルを変更する書き方である
2.書き込み内容が適当かどうかのチェックがない(値、範囲など)
3.できることが単純すぎる(分岐処理がない等)
といった点が不便だと感じました。