これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド bbe です。
プログラム:
NAME
bbe - バイナリブロックエディタ
SYNOPSIS
BBE [オプション] ...
DESCRIPTION
BBE バイナリ ファイル用の sed に似たエディタです。 バイナリ変換を実行します。
入力ストリームのブロック。
OPTIONS
BBE 次のオプションを受け入れます。
-b, --block =BLOCK
ブロック定義。
-e, --式=COMMAND
実行するコマンドにCOMMANDを追加します。
-f, --file =スクリプトファイル
スクリプトファイルの内容をコマンドに追加します。
-o, --output =名
出力をに書き込む 名 標準出力の代わりに。
-s, -抑制
通常の出力を抑制し、ブロックの内容のみを出力します。
-?, - 助けて
使用可能なすべてのオプションとその意味をリストします。
-V, - バージョン
プログラムのバージョンを表示します。
BLOCK は次のように定義できます。
N:M どこ N'番目のバイトから始まります M バイト長のブロック (最初のバイトは 0)。
:M 入力ストリームのブロック長は M.
/開始/:M
String start 開始 M バイト長のブロック。
/起動停止/
String start ブロックが開始され、ブロックは文字列で終了します stop.
/始める/:
String start ブロックを開始し、ブロックは次の発生時に終了します。 start。 のみ
最初の start ブロックに含まれます。
:/ストップ/
ブロックは入力ストリームの先頭 (または前のブロックの末尾) から始まり、
次に発生した時点で終了します stop。 弦 stop ブロックに組み込まれます。
特別な値 '$' の M ストリームの終わりを意味します。
ブロックのデフォルト値は 0:$ で、入力ストリーム全体を意味します。
両方 start および stop ブロックには文字列が含まれます。 印刷不可能な文字をエスケープできる
as
\nnn XNUMX 進数
\xnn XNUMX 進数
\0nnn XNUMX 進数
文字「\」は「\\」としてエスケープできます。 エスケープ コード '\a'、'\b'、'\t'、'\n'、'\v'、'\f'、'\r' および
'\;' も使用できます。
長さ(N および M) は、0 進数 (n)、XNUMX 進数 (xn)、または XNUMX 進数 (XNUMXn) として定義できます。
の値です。
COMMAND SYNOPSIS
BBE ブロック コマンドとバイト コマンドの XNUMX 種類のコマンドがあり、どちらも常に現在のコマンドに関連しています。
ブロック。 つまり、ブロックの外側の入力ストリームは変更されないままになります。
ブロック コマンド
NS [n] を削除します。 n番目のブロック。 それなし n、見つかったすべてのブロックが出力から削除されます。
ストリーム。
I string
文字列を挿入します string ブロックの前に。
A string
文字列を追加します string ブロックの最後に。
J n スキップ n このコマンドの後にコマンドを実行する前にブロックします。
L n ブロック番号から始まるすべてのブロックを変更しないままにしておきます n。 コマンドのみに影響します
このコマンドの後。
N ブロックを印刷する前に、ブロックが始まるファイル名が印刷されます。
F f ブロックを印刷する前に、ブロックの先頭の入力ストリーム オフセットは次のようになります。
印刷されます。 f オフセットの XNUMX 進数、XNUMX 進数、または XNUMX 進数形式の場合は、H、D、または O を指定できます。
B f ブロックを印刷する前に、ブロック番号が印刷されます (最初のブロック == 1) f Hでもいいし、
ブロック番号の XNUMX 進数、XNUMX 進数、または XNUMX 進数形式の場合は D または O。
> file ブロックを印刷する前に、ファイルの内容 file 印刷されます。
< file ブロックを印刷した後、ファイルの内容 file 印刷されます。
バイト コマンド
n バイトコマンドでは、現在のブロックの先頭からのオフセットです(ゼロから始まります)。
r n string
位置から始まるバイトを置換します n 紐付き string.
i n string
インセット string 位置から開始 n.
p 形式でアーカイブしたプロジェクトを保存します.
ブロックの内容は、次のように定義された形式で出力されます。 形式でアーカイブしたプロジェクトを保存します.. 形式でアーカイブしたプロジェクトを保存します. どれでも持つことができます
XNUMX 進数、XNUMX 進数、XNUMX 進数、Ascii および XNUMX 進数の形式 H、D、O、A、B です。
s/サーチ/replace/
すべての出現箇所を置き換えます サーチ replace.
y/source/dest/
バイトを変換 source の対応するバイトに dest. ソース および dest しなければなりません
同じ長さであること。
d n m|*
削除 m オフセットから始まるバイト数 n。 の代わりに * が定義されている場合 m、それからすべて
から始まるバイト n 削除されます。
c from 〜へ
フォーマットからバイトを変換する from 〜へ 〜へ。 現在サポートされている形式は次のとおりです。
BCD XNUMX進化XNUMX進数
ASC アスキー
j n j コマンド以降のコマンドは最初は無視されます。 n ブロックのバイト。
l n l コマンドの後のコマンドは無視されます。 nブロックの ' 番目のバイト。
w file 現在のブロックからファイルにバイトを書き込みます file。 w-command より前のコマンドには、
何が書かれるのか。 %B または %nB file は現在のブロック番号に置き換えられます。
%nB の n はフィールド長です。n の先頭にゼロがあるとブロック番号が残ります。
ゼロが埋め込まれます。
& c バイナリを実行します および c.
| c バイナリを実行します or c.
^ c バイナリを実行します XOR c.
~ 二項否定を実行します。
u n c ブロックの先頭からオフセットまでのすべてのバイト n に置き換えられます c.
f n c オフセットから始まるすべてのバイト n ブロックの最後までは次のように置き換えられます c.
x バイトのニブル (半オクテット) の内容を交換します。
文字列内の非表示文字は、ブロック定義文字列と同じ方法でエスケープできます。
s および y コマンドの文字「/」には、表示される任意の文字を使用できます。
D、A、I、F、B、c、s、i、y、p、<、>、および d コマンドにより、入力の長さが変化することに注意してください。
出力ストリームも異なります。
例
bbe -e "s/c:\\temp\\data1.txt/c:\\temp\\data2.txt/" file1
ファイル file1 内の「c:\temp\data1.txt」はすべて次のように変更されます。
「c:\temp\data2.txt」
bbe -b 0420:16 -e "r 4 \x12\x4a" file1
オフセット 16 で始まる 0420 バイト長ブロックの XNUMX バイト目から始まる XNUMX バイト
file1 の (12 進数) は 4 進数の値 XNUMX と XNUMXa に変更されます。
bbe -b :16 -e "A \x0a" file1
ブロックごとに改行が追加され、ブロック長は 16 です。
onworks.net サービスを使用して BBE オンラインを使用する