これは私には何もスピードを上げません。
domains=()
for i in `seq 1 100`; do
echo $i
word=`sem "xidel -s 'https://www.thisworddoesnotexist.com/' -e '//div[@id="definition-word"]/text()'"`
len=${#word}
if [ "$len" -lt "8" ]; then
word=`echo $word | sed 's/[^a-z A-Z]//g'`
domains+=(${word}.com)
fi
done
sem --wait
printf '%s\n' "${domains[@]}"
forループ本体を並列に実行しようとしていますsem
。
ベストアンサー1
あなたが探しているものparset
:
myfunc() {
word=$(xidel -s 'https://www.thisworddoesnotexist.com/' -e '//div[@id="definition-word"]/text()')
len=${#word}
if [ "$len" -lt "8" ]; then
word=`echo $word | sed 's/[^a-z A-Z]//g'`
echo ${word}.com
fi
}
export -f myfunc
parset domains -j 30 myfunc ::: {1..100}
printf '%s\n' "${domains[@]}"
parset
GNU Parallelの一部です。