微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

GNU Parallel 不会在所有文件上运行

如何解决GNU Parallel 不会在所有文件上运行

我正在使用 GNU Parallel 对目录中的多个文件运行相同的命令。使用文档中提供的示例,我使用

find input -name *.json -print0 | parallel -0 "context --file={} --result={/.}.pdf sometex.tex"

这个命令允许我为目录中的每个 json 文件生成一个 pdf 文件。但是,当我运行它时,每次都会得到不同的结果。在 1000 个 json 文件中,有时我得到 490 个 pdf 文件,有时我得到 800 个。我还尝试按顺序运行命令,并且按顺序运行能够生成所有 1000 个 pdf 文件。有谁知道为什么会发生这种情况,我该如何解决

解决方法

经过一些调查,我意识到问题不在于 GNU Parallel,而是因为我在使用此命令时试图访问同一个文件

find input -name *.json -print0 | parallel -0 "context --file={} --result={/.}.pdf sometex.tex"

这可能导致了竞争条件。我解决了这个问题,我为每个输入制作了 .tex 文件的副本,并且事情能够顺利运行。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。