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

时间:2017-02-01 15:26:08

标签: linux unix base64 decode

我正在尝试阅读文件&仅提取base64编码的部分。我这样做是通过使用sed找到模式' base64'之间的界限。 &安培; ' - &#39 ;.

我能够这样做

 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

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

1 个答案:

答案 0 :(得分:0)

我遇到了这个问题。文件中的行如下

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