Gnu 通过 stdin 并行传递每一行

问题描述 投票:0回答:1

我想使用 base64 对文件的每一行进行编码。但是,base64(和其他命令行实用程序)不允许通过命令行参数传递值,但要求它们通过 stdin 传递。

就我而言,我尝试跑步

cat alphanum.txt | parallel --pipe base64
。然而,这会将整个文件传递给 base64。据我所知,其原因是,当
--pipe
开关处于活动状态时,Gnu Parallel 将输入分成“块”,默认情况下每个块的大小为 1M。有没有办法让每个块长一行?我尝试使用
-L 1
-l 1
--line-buffered
,但似乎都不起作用。

linux bash command-line command-line-interface gnu-parallel
1个回答
0
投票

实现这一点的最简单方法如下:

cat alphanum.txt | parallel "echo {} | base64"

Gnu parallel 将

{}
替换为直线。因此,每行值都会通过 stdin 回显到 base64。

参见 https://www.gnu.org/software/parallel/man.html#options

© www.soinside.com 2019 - 2024. All rights reserved.