如何解码 linux 中的 base64 编码行?

How do I decode base64 encoded lines in linux?

我正在尝试读取文件并仅提取 base64 编码部分。我这样做是通过使用 sed 来查找模式的 'base64' 和 '--' 之间的线。

我可以使用

 sed -e '1,/base64/d' -e '/--/,$d' file.txt | sed '/^\s*$/d'

但是当我尝试使用 base64 解码它时,如下所示,

 sed -e '1,/base64/d' -e '/--/,$d' file.txt | sed '/^\s*$/d' | base64 -d

我收到一条错误消息:-

BEGIN:VCALENDAR
METHOD:REQUEST
PRODID:Microsoft Exchangbase64: invalid input

请让我知道我做错了什么,是否有其他更好的方法来实现最终结果。任何帮助表示赞赏。

我知道了。文件中的行如下

QkVHSU46VkNBTEVOREFSDQpNRVRIT0Q6UkVRVUVTVA0KUFJPRElEOk1pY3Jvc29mdCBFeGNoYW5nZSBTZ
XJ2ZXIgMjAxMA0KVkVSU0lPTjoyLjANCkJFR0lOOlZUSU1FWk9ORQ0KVFpJRDpBVVMgRWFzdGVybiBTdG 

末尾有一个结束行字符,所以我所要做的就是将其删除。因此,现在我的代码如下所示并且有效:-

sed -e '1,/base64/d' -e '/--/,$d' _12829640_21.12.-.5p.meeting.room_1485234639532_1.mail | sed '/^\s$/d' | tr -d "\n\r"  | base64 -d