Я обнаружил то же самое: сам по себе curl будет печатать в STDOUT, но не может быть передан в другую программу.
Сначала я подумал, что решил эту проблему, используя xargs, чтобы сначала отобразить вывод:
curl -s ... <url> | xargs -0 echo | ...
Но тогда, как указано в комментариях, он также работает без части xargs, поэтому -s
(тихий режим) является ключом к предотвращению вывода постороннего прогресса в STDOUT:
curl -s ... <url> | perl -ne 'print $1 if /<sometag>([^<]+)/'
Приведенный выше пример извлекает простое содержимое <sometag>
(не содержащее встроенных тегов) из вывода XML оператора curl.