Io-Redirection
執行並行命令並將輸出重定向到具有特定名稱的文件
我不能很好地理解並行命令是如何工作的。
我需要執行這個簡單的命令:(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
好吧,這是一個設計過度的 Bash 解決方案,但它可以工作,並且希望能闡明
parallel
命令的使用:function xx(){ curl "https://jsonplaceholder.typicode.com/todos/$1" > "$1.txt";} parallel xx -- {1..100}
第一行創建一個新的“命令”或呼叫
xx
的函式 - 當執行時 - 導致執行 curl 命令,其標準輸出重定向到文件。該xx
函式將單個數字作為其參數;在函式體內,它被稱為“$1”,即第一個位置參數。第二行展示了該命令的使用,該命令對列表 1、2、3、…、100 中的每個參數
parallel
執行一次(並使用)(列表 1 2 3 … 100 由 shell 在以下情況下生成)xx
它對{1..100}
) 執行大括號擴展。注意:此答案與Debian 系統上的軟體包中的
parallel
命令有關,與命令無關。moreutils``GNU parallel
像這樣:
parallel curl https://jsonplaceholder.typicode.com/todos/{} ">" {}.txt ::: {1..100}
考慮花 20 分鐘閱讀 GNU Parallel 2018 書的第 1+2 章(列印:http ://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.html線上:https://doi.org/10.5281/zenodo.1146014)。您的命令行會因此而愛上您。