GNUparallel
外觀
GNUparallel是用著 Linux 佮其他類 Unix 作業系統的命令列驅動的實用工具,伊允准使用者並列的執行 shell 指令碼。GNU parallel 是 Ole Tange 用 Perl 寫的自由軟體。伊可在 GPLv 三條款落去得著。GNU parallel 會使佇遠端侍服器頂懸執行作業,伊使用 ssh 佮遠端的機器進行通信。
用法
上捷用的用法是代替 shell 迴箍,比如將變做是下形式:
遮的檔案 ` list ` 包括予 ` do _ something ` 的實際參數,啊若遮的 ` | process _ output ` 會當省起來。
使用 parallel 講令碼通常比使用 pexec 的指令碼易讀。
程式 parallel 的特徵猶閣有:
- 聚組標準輸出佮標準錯誤輸出,parallel 延期輸出一直到所有執行作業完成;
- 會當保持輸出的次序和輸入的次序;
- 拄仔好的處理包含特殊字元的檔名,比如講空格、單引號、雙引號、&(ampersand)和 UTF 鋪八編碼字元;
作為預設,parallel 並列執行作業的數量也若 CPU 核心數目。
例
上述命令是下命令的並列等價:
伊佇咧當前 kha-tá-lok-guh 佮其子 kha-tá-lok-guh 中的名結束於 ` . foo ` 所有的檔案內底走揣字串 ` bar ` 會出現著。parallel 會如期執行除非拄著名包含換行的檔案。為著避免這个限制會當使用:
上述命令使用空字元來分隔檔名。
上述命令使用 ` { } ` 來告知 ` parallel ` 將 ` { } ` 替代為實際參數列。
上述命令所做仝款:
猶毋過,使用 ` find ` / ` parallel ` / ` cp ` 的前者命令閣較有效利用資源,並且佇咧 \ * . ogg 展開了後對 shell 來講傷大的情形下無做為錯誤來停止。
參見
- xargs
- pexec
- PPSS-( Distributed ) Parallel Processing Shell Script
參照
外部連結
- 官方網站
- GNU parallel 的計畫頁佮手冊頁