2013-06-20 29 views
5

我有一个文本文件,每行都是一个单独编码base64的单词。现在我想解码它。我正在尝试使用base64命令行,但我只在一行中获得所有单词,我希望每行都有一行。将文件的每一行管道到命令

例如,我的文件是:

Y2F0Cg== 
ZG9nCg== 
aG91c2UK 

我想作为结果:

dog 
cat 
house 

但我发现了:

dogcathouse 

我觉得xargs的会有所帮助,但我没有明白这一点。

+0

你可能想改变问题的标题,因为它实际上不是关于通过文件循环。 – l0b0

+0

@ l0b0:我不这么认为。因为OP认为它需要循环。但是,有更好的解决方案可用。 – 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