我想使用 base64 对文件的每一行进行编码。但是,base64(和其他命令行实用程序)不允许通过命令行参数传递值,但要求它们通过 stdin 传递。
就我而言,我尝试跑步
cat alphanum.txt | parallel --pipe base64
。然而,这会将整个文件传递给 base64。据我所知,其原因是,当 --pipe
开关处于活动状态时,Gnu Parallel 将输入分成“块”,默认情况下每个块的大小为 1M。有没有办法让每个块长一行?我尝试使用 -L 1
、-l 1
和 --line-buffered
,但似乎都不起作用。
实现这一点的最简单方法如下:
cat alphanum.txt | parallel "echo {} | base64"
Gnu parallel 将
{}
替换为直线。因此,每行值都会通过 stdin 回显到 base64。