為什麼(GNU?)並行會默默失敗,如何修復它?

為什麼(GNU?)並行會默默失敗,如何修復它?

在用於後處理一些模擬資料的較大腳本中,我有以下行:

parallel bnzip2 -- *.bz2

如果我理解parallel正確(我可能不理解),應該在具有列出的擴展名的所有文件上運行程式的 n 核線程。您可能會注意到我拼錯了命令bunzip2。我希望這裡出現警告或錯誤訊息,但它會默默地失敗。這是故意的嗎?我以後怎麼才能不被這個困擾呢?

更新:

我的安裝可能parallel與我想像的不同:

> parallel --version`


parallel: invalid option -- '-'
parallel [OPTIONS] command -- arguments
    for each argument, run command with argument, in parallel
parallel [OPTIONS] -- commands
    run specified commands in parallel

parallel我的系統上的手冊頁給了:

 parallel(1)                                                        parallel(1)
NAME
       parallel - run programs in parallel
....
AUTHOR
   Tollef Fog Heen

這似乎是不是GNU 版本。

答案1

您對來自 moreutils 的 Tollef 的相似之處感到困惑。看https://www.gnu.org/software/parallel/history.html

您可以簡單地透過以下方式安裝 GNU Parallel:

wget http://git.savannah.gnu.org/cgit/parallel.git/plain/src/parallel
chmod 755 parallel
cp parallel sem

觀看 GNU Parallel 的介紹影片以了解更多資訊: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1

答案2

(我會對此發表評論,但我缺乏特權。)

您也可以只使用parallel --gnu.你說Ubuntu 12(.04?)使用Tollef的版本,但它實際上是gnu實現,只是出於某種原因默認使用Tollef的語法。

我添加alias parallel='parallel --gnu'到我的登入腳本中,這樣我就不必再為它大驚小怪了。

相關內容