我想并行讀取(序列號)管道,所以我想運行類似的東西:
seq 2000 | parallel --max-args 0 --jobs 10 "{ read test; echo $test; }"
相當于運行:
echo 1
echo 2
echo 3
echo 4
...
echo 2000
但不幸的是,管道沒有被并行讀取,這意味著它運行如下:
echo
echo
echo
...
echo
并且輸出為空。
有誰知道如何制作并行讀取(序列號)管道?謝謝。
uj5u.com熱心網友回復:
xargs不需要 GNU 的 GNU替代方案parallel:
seq 2000 | xargs -P 10 -I {} "echo" "hello world {}"
輸出:
你好世界1 你好世界2 你好世界3 你好世界4 你好世界5 . . .
來自man xargs:
-P max-procs: 一次運行多個max-procs行程;默認值為 1。如果 max-procs 為 0,xargs 將一次運行盡可能多的行程。
-I replace-str: 用replace-str從標準輸入讀取的名稱替換初始引數中出現的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/402345.html
標籤:
