将文件的每一行都传递给命令

tpc*_*iro 8 shell base64 command-line xargs

我有一个文本文件,每行是一个单词编码base64 separely.现在我想解码它.我正在尝试使用base64命令行,但是我只能在一行中获得所有单词,我想要每行一个.

例如,我的文件是:

Y2F0Cg==
ZG9nCg==
aG91c2UK
Run Code Online (Sandbox Code Playgroud)

我想要结果:

dog
cat
house
Run Code Online (Sandbox Code Playgroud)

但是我得到了:

dogcathouse
Run Code Online (Sandbox Code Playgroud)

我认为xargs可以提供帮助,但我没有明白这一点.

fed*_*qui 12

使用base64 --decode与循环起来:

$ while IFS= read -r line; do echo "$line" | base64 --decode; done < file
cat
dog
house
Run Code Online (Sandbox Code Playgroud)

  • 对我来说,这消耗了所有换行符,就像其他解决方案一样。必须在 `echo $line | 之后添加一个 `echo "";` base64 --decode;`. (3认同)

l0b*_*0b0 5

这在base648.13 中对我有用:

base64 --decode test.txt
Run Code Online (Sandbox Code Playgroud)

无需拆分文件。您使用的是哪个版本?

  • 我用过这个,但没有用。我认为这是因为该文件并非完全是 base64 编码的。实际上,每个单词都是单独编码的,然后放在一起放在文件中。 (5认同)