gpt4 book ai didi

gnu-parallel - GNU 使用 --round-robin 并行输出到标准输出

转载 作者:行者123 更新时间:2023-12-02 17:18:46 24 4
gpt4 key购买 nike

我正在尝试使用 GNU Parallel 来帮助我处理一些我不想在本地保存的远程文件。

我的命令看起来有点像这样:

python list_files.py | \
parallel -j5 'aws s3 cp s3://s3-bucket/{} -' | \
parallel -j5 --round --pipe -l 5000 "python process_and_print.py"

process_and_print.py 打印一些输入行的输出,但该输出并没有像我预期的那样立即到达标准输出,而是我只在过程完成后才看到输出。如果我删除 --round 参数,一切都会按预期工作。

所有这些数据都保存在哪里?我有没有办法将它逐行打印到标准输出,而无需缓冲?

最佳答案

Where does all that data get saved?

GNU Parallel 的所有缓冲输出都缓冲在 $TMPDIR/--tmpdir 中的临时文件中,默认为 /tmp。您看不到这些文件,因为如果 GNU Parallel 被终止,它们会立即被删除(但保持打开状态)以避免您必须清理。

Do I have a way to print it to stdout, line by line,

--行缓冲区

without buffering?

-u 一起禁用缓冲,但是你不能保证逐行。

--line-buffer 从版本 20170822 开始在内存中缓冲整行,因此不会在 /tmp 中缓冲。

关于gnu-parallel - GNU 使用 --round-robin 并行输出到标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44605660/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com