2013-06-20 8 views
5

Ich habe eine Textdatei, die jede Zeile ist ein Wort codierte base64 separely. Jetzt möchte ich es entschlüsseln. Ich versuche, base64 Befehlszeile zu verwenden, aber ich bekomme alle Wörter in nur einer Zeile, ich will eins pro Zeile.Pipe jede Zeile einer Datei zu einem Befehl

Zum Beispiel meine Datei ist:

Y2F0Cg== 
ZG9nCg== 
aG91c2UK 

ich als Ergebnis wollen:

dog 
cat 
house 

Aber ich bin immer:

dogcathouse 

Ich denke, xargs helfen könnte, aber Ich verstehe es nicht.

+0

Sie können den Titel der Frage geändert werden soll, da es über Looping durch eine Datei nicht wirklich ist. – l0b0

+0

@ l0b0: Ich denke nicht. weil OP dachte, dass es notwendig ist, eine Schleife zu machen. Es war jedoch eine bessere Lösung verfügbar. – anishsane

Antwort

9

Verwendung base64 --decode:

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

Hinweis: ich diese Antwort gelöscht, weil ich dachte, dass l0b0 der man das Problem vollständig gelöst. Da die Person immer noch Probleme hat, lösche ich den Beitrag, um zu sehen, ob diese Lösung hilft. Diese

+2

Danke! Mein Problem gelöst – tpcordeiro

3

funktioniert für mich in base64 8.13:

base64 --decode test.txt 

keine Notwendigkeit, die Datei zu teilen. Welche Version verwendest du?

+0

Gut, dachte ich, es war notwendig, durch die Datei zu durchlaufen. – fedorqui

+2

Ich habe das benutzt, aber nicht funktioniert. Ich denke, es liegt daran, dass die Datei nicht vollständig Base64-codiert war. Tatsächlich wurde jedes Wort einzeln codiert und dann in einer Datei zusammengefügt. – tpcordeiro

0

können Sie Python für das (keine Notwendigkeit für jede Zeile zu lesen):

python -m base64 -d foo.txt