¿Cómo extraer el código de first base64 fuera de file?

En Linux estoy teniendo files de text y cada uno contiene 1 o 2 bloques base64 de código. Lo siguiente es parte del file y 1 bloque base64.

Content-Transfer-Encoding: base64

RGVhciBMdWlzLA0KICANCkdvb2QgbW9uaW5nIQ0KT3VyIEJhbmsgYWNjb3VudCBpcyB1bmRlcmdvaW5nIGF1ZGl0IGZvciB0aGUgZmlzY2FsIHllYXIgYXMgcmVxdWlyZWQgYnkgdGhlIGNoaW5hIGZvcmVpZ24gY3VycmVuY3kgY29udHJvbCBwb2xpY3kgYW5kIHRoZSBhY2NvdW50IHdpbGwgbm90IGJlIGF2YWlsYWJsZSB1bnRpbCB0aGUgQ2hpbmVzZSB0YXggYnVyZWF1cyBhcmUgc 2F0aXNmaWVkIHRoYXQgYWxsIGFwcGxpY2FibGUgdGF4ZXMgaGF2ZSBiZWVuIHBhaWQgdXAuIFBsZWFzZSBob2xkIHBheW1lbnQgc28gaSBjYW4gZnVybmlzaCB5b3Ugd2l0aCBvdXIgcmV2aXNlZCBiYW5raW5nIGluZm9ybWF0aW9uLiAgDQoNCiAgDQpCZXN0IHJlZ2FyZHMNCiANCkRhdmlk

—— = _ Part_143209_644876817.1451544132767–

¿Qué command puedo usar para extraer first base64 del file?

Mi objective es decodificar la salida para que sea legible


Ejemplo de command de deencoding de file: https://superuser.com/a/663397

Ejemplo de command de deencoding de frase: https://askubuntu.com/a/178546

No sé cómo extraer solo la parte base64 del código o si contiene dos base64, solo el primero. Puedo usar sed o awk , pero no sé cómo supongo que searché:

  1. base64
  2. —— = _ Part_

Recorta las líneas en blanco y voy a tener base64 Pero, ¿y si hay 2 secciones de base64? Quiero tener el primero.

No estoy seguro de entender completamente toda su pregunta, pero parece que ya tiene una parte resuelta y solo necesita una forma de recortar el text que desea ingresar en el command base64 .

Quiero responder esta parte:

supongo que searché a) base64 y b) —— = Parte

recortar las líneas en blanco y estoy teniendo base64 pero qué pasa si hay 2 base64, quiero primero

Puede imprimir todas las líneas desde la primera instancia de base64 a la primera instancia posterior de =_Part_ con el siguiente command sed :

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

Explicación:

-n suprime la acción pnetworkingeterminada de imprimir cada línea.

/base64/,$ aplica el siguiente bloque de código desde la primera instancia de base64 hasta el final del file. ( $ significa la última línea en este context)

p significa imprimir la línea.

/=_Part_/ es un patrón que limita el command q que lo sigue para que solo se ejecute si la línea contiene =_Part_ .

El command q sale de sed , lo que hace que no se procesen todas las líneas subsiguientes.

El resultado de todo esto es muy similar al simple sed -n '/base64/,/=_Part_/p' inputfile que se imprimiría desde base64 a =_Part_ -pero esta versión más simple imprimiría varias secciones de este tipo en lugar de detenerse después de la primera .