2013-06-20 2 views
5

У меня есть текстовый файл, который каждая строка является одним словом, кодированным base64 раздельно. Теперь я хочу его расшифровать. Я пытаюсь использовать base64 командной строки, но я получаю все слова только в одной строке, я хочу один за строку.проведите каждую строку файла до команды

Например, мой файл:

Y2F0Cg== 
ZG9nCg== 
aG91c2UK 

Я хочу, чтобы в результате:

dog 
cat 
house 

Но я получаю:

dogcathouse 

Я думаю, xargs может помочь, но Я не понимаю.

+0

Вы можете изменить название этого вопроса, так как это на самом деле не о перекручивание через файл. – l0b0

+0

@ l0b0: Я так не думаю. потому что ОП считал, что требуется цикл. Однако было лучшее решение. – anishsane

ответ

9

Использование base64 --decode:

$ while read line; do echo $line | base64 --decode; done < file 
cat 
dog 
house 

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

+2

Спасибо! Решила мою проблему – tpcordeiro

3

Это работает для меня в base64 8.13:

base64 --decode test.txt 

Нет необходимости разделить файл. Какую версию вы используете?

+0

Хорошо, я думал, что необходимо прокрутить файл. – fedorqui

+2

Я использовал это, но не работал. Я думаю, это потому, что файл не был полностью закодирован base64. Фактически каждое слово кодировалось отдельно, а затем оно было собрано в файл. – tpcordeiro

0

Вы можете использовать Python для этого (нет необходимости для чтения каждой строки):

python -m base64 -d foo.txt