2017-02-01 16 views
0

Я пытаюсь прочитать файл & извлечь только закодированную часть base64. Я делаю это, используя sed, чтобы найти линии между шаблоном base64 & '-'.Как декодировать строки в кодировке base64 в linux?

Я могу сделать это с помощью

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 

Пожалуйста, дайте мне знать, что я делаю неправильно и есть альтернативный, лучший способ для достижения конечного результата. Любая помощь приветствуется.

+0

ok..i не получите его, почему вопрос становится downvoted. На самом деле, я действительно не волнуюсь. Но было бы очень благодарно, если бы кто-то мог на leaset комментировать какой-нибудь полезный отзыв. Также, Извините за плохой английский – N29

+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