パターンでバイナリファイルを変更したい。私はxxd
(vimパッケージから)のプレーンヘキサダンプにファイルを変換しました。RegExすべての文字を2で2つにグループ化するときに除外するセット
$ xxd -ps file.bin | tr -d '\n' | tee out.txt
3a0a5354...
私は\x01[^\xFF]*\xFF
(トークン開閉トークンと他のクロージング・トークンを除いて、それらの間のすべてを)一致するすべてのパターンを削除する中:プレーンファイルは、この(末尾のLFでのみ1ライン)のように見えますオリジナルファイルしかし、sed
はこのようには動作しません。
例入力と理想のマッチ:
020202020101010101feeffeefff0000...
~~~~~~~~~~~~~~~~~~~~
そして、私はこれをやって考えている:除外し
sed 's/regex//g' in.file > out.file
は今、私はすべてのchatacters 2×2に一致するようにしようとしていますff
。何か案は?
入力と出力の例をいくつか教えてください。 'xxd'(' hd'のような)出力はその出力に位置付けメタデータを持っています。 'sed'はそれほどうまくいくわけではありません。 Perlはどうですか? 'perl -pe 's/\ x01 [^ \ xff] * \ xff' //' –
@AdamKatz xxdのオプション '-ps'を使用しました。 – iBug
素晴らしいです。あなたは何をしようとしているのかを知るために入力と出力の例が必要です。文字コードに関連する正規表現['\ x01 [^ \ xFF] * \ xFF'](https://regex101.com/r/Ts0QpE/1)と一致するパターンを求めているようですが、完全に異なる正規表現は、 ''(?:..)*?(?!ff)(..) '](https://regex101.com/r/Ts0QpE/2)で満足されるかもしれません。 –