並列コマンドがどのように機能するのかわかりません。
次の簡単なコマンドを実行する必要があります。 (100回)
curl https://jsonplaceholder.typicode.com/todos/1
curl https://jsonplaceholder.typicode.com/todos/2
curl https://jsonplaceholder.typicode.com/todos/3
...
curl https://jsonplaceholder.typicode.com/todos/100
end は出力を次の名前のファイルにリダイレクトします。
1.txt
2.txt
3.txt
....
100.txt
答え1
このように:
parallel curl https://jsonplaceholder.typicode.com/todos/{} ">" {}.txt ::: {1..100}
20分ほど時間をかけてGNU Parallel 2018本(印刷版:http://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.htmlオンライン:https://doi.org/10.5281/zenodo.1146014)。あなたのコマンドラインはあなたを愛するでしょう。
答え2
まあ、これは少し過度にエンジニアリングされたBashソリューションですが、うまくいき、次のコマンドの使用を明確にしてくださいparallel
。
function xx(){ curl "https://jsonplaceholder.typicode.com/todos/$1" > "$1.txt";}
parallel xx -- {1..100}
最初の行は、xx
実行時にカールコマンドを実行させ、標準出力をファイルにリダイレクトする新しい「コマンド」または関数を生成します。関数xx
は単一の数値を引数として使用し、関数本体内では最初の位置引数「$1」と呼ばれます。
parallel
2行目は、リスト1、2、3、...、100の各パラメータに対して1回実行されるコマンドの使用を示していますxx
(リスト1 2 3 ... 100は、次の条件でシェルによって生成されます。 )。 :){1..100}
で支柱を拡張します。
parallel
moreutils
注:この回答は、CommandsではなくDebianシステムパッケージのCommandsに関連していますGNU parallel
。