bash スクリプトで構成される一連のファイルがあり、最後に gzip ファイルが連結されています。
先頭の bash を取り除き、純粋な gzip ファイルを残す方法が欲しいです。
私が思いついた方法は次のとおりです。
- ファイルで 16 進ダンプを実行します。
sed
gzip マジック ナンバーより前のすべてを削除するために使用し1f 8b
ます。- 残りの 16 進ダンプをバイナリに変換します。
すなわち
xxd -c1 -p input | tr "\n" " " | sed 's/^.*?1f 8b/1f 8b' | xxd -r -p > output
これは一見問題ないように見えます。1f 8b
ただし、ファイルの gzip 部分に最初のヘッダーとは別にバイト シーケンスが含まれていると、バラバラになります。このような場合、最後に出現する前のすべてを削除します。
私の最初の試みは正しい軌道に乗っていますか?それを修正するにはどうすればよいですか? または、私が見逃したこれを行うためのより良い方法はありますか?