ファイルから最初のbase64コードを抽出する方法は?

ファイルから最初のbase64コードを抽出する方法は?

Linuxには、それぞれ1〜2個のbase64コードブロックを含むテキストファイルがあります。以下はファイルの一部と1つのbase64チャンクです。

コンテンツ転送エンコーディング:base64

RGVhciBMdWlzLA0KICANCkdvb2QgbW9uaW5nIQ0KT3VyIEJhbmsgYWNjb3VudCBpcyB1bmRlcmdvaW5nIGF1ZGl0IGZvciB0aGUgZmlzY2FsIHllYXIgYX v cm VpZ24gY3VycmVuY3kgY29udHJvbCBwb2xpY3kgYW5kIHRoZSBhY2NvdW50IHdpbGwgbm90IGJlIGF2YWlsYWJsZSB1bnRpbCB0aGUgQ2hpbggg aXN ma WVkIHRoYXQgYWxsIGFwcGxpY2FibGUgdGF4ZXMgaGF2ZSBiZWVuIHBhaWQgdXAuIFBsZWF​​zZSBob2xkIHBheW1lbnQgc28gaSBjYW4gZb NlZCBiY W5 Raw 5 niGluZm9ybWF0aW9uLiAgDQonCiagDQpCZXN0IHJlZ2FyZHMNCiANCKRhdmlk

------=_Part_143209_644876817.1451544132767--

ファイルから最初のbase64を抽出するには、どのコマンドを使用できますか?

私の目標は、出力を読み取ることができるようにデコードすることです。


ファイルデコードコマンドの例:https://superuser.com/a/663397

構文復号化コマンドの例:https://askubuntu.com/a/178546

コードのBase64部分のみを抽出する方法がわからない場合、または2つのBase64が含まれている場合は、最初の部分のみを抽出する方法がわかりません。sedorを使用できますが、awk次のものが見つかると仮定する方法がわかりません。

  1. 64ビットベース
  2. ------=_部分_

空白行をトリミングするとBase64が出ますが、Base64部分が2つあればどうなりますか?初めて欲しいです。

ベストアンサー1

あなたの質問をすべて完全に理解したかどうかはわかりませんが、一部の内容は理解されており、コマンドに入力したいテキストをトリミングする方法が必要なようですbase64

私はこの部分についてこう答えたいと思います。

私はa) base64とb) ------=を見つけると仮定します。部分

空の行を整えてください。 Base64があり、Base64が2つある場合は、最初のものが必要です。

次を使用して、最初のインスタンスからbase64最初のインスタンスまでのすべての行を印刷できます。=_Part_sed

sed -n '/base64/,${p;/=_Part_/q;}' inputfile

説明する:

-n各行の印刷を無効にするデフォルトの動作です。

/base64/,$base64最初のインスタンスからファイルの終わりまで、次のコードブロックを適用します。 ($この文脈では最後の行を意味します。)

pラインを印刷するという意味です。

/=_Part_/q行に=_Part_

コマンドqが終了したsedため、後続のすべての行はまったく処理されません。

これらすべての結果は非常に似たようなより単純なバージョンでは、から - までsed -n '/base64/,/=_Part_/p' inputfile印刷しますが、この単純なバージョンは、最初のセクションの後に停止するのではなく、複数のセクションを印刷します。base64=_Part_

おすすめ記事