Когда команда становится такой сложной, я обычно делаю функцию:
doit() {
curl --write-out '\n %{http_code}\n' --silent --head --output /dev/null https://example.com/id="$1"
}
export -f
parallel doit ::: {427240690783..427240690793}
Это потому, что легко проверить, правильно ли функция выполняет одну операцию ввода. Когда это происходит, вы вызываете GNU Parallel для вызова функции.
Здесь вы, вероятно, захотите что-то вроде:
grep200() {
status=$(curl --write-out '%{http_code}' --silent --head --output /dev/null "$1");
if [ $status == 200 ] ; then
echo "$1";
fi;
}
export -f grep200
parallel grep200 https://example.com/id={} ::: {427240690783..427240690793}