Estoy tratando de imprimir solo las secciones detalladas de una solicitud cURL (que se envían a stderr
) desde el shell bash.
Pero cuando redirecciono stdout
así:
curl -v http://somehost/somepage > /dev/null
Aparece algún tipo de tabla de resultados en el medio de la salida para stderr
:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
Seguido por esto cerca del final:
{ [data not shown]
118 592 0 592 0 0 15714 0 --:--:-- --:--:-- --:--:-- 25739
Lo que hace que los encabezados de respuesta sean menos legibles.
No veo este texto cuando no estoy redirigiendo.
Otra forma de ver los efectos:
La tabla no aparece:
curl -v http://somehost/somepage 2>&1
Aparece la tabla:
curl -v http://somehost/somepage 2>&1 | cat
1) ¿Cómo es que esto aparece solo con ciertos tipos de redireccionamientos?
2) ¿Cuál es la mejor manera de suprimirlo?
Gracias
-s
fue la clave!-s
pero sin-v
usted no verá errores como la falta de conexión. Para eso también debe agregar-S
(o--show-error
) como en la respuesta de mhoydis.curl
tojq
. No hay barra de progreso sin canalizarjq
, luego cuando canalizojq
tengo que volver y agregar-s
.STDOUT
no es un tty. Cuando la salida no se está canalizando, no desea que la información de progreso se entremezcle con la salida normal, que puede ver y tener una idea del progreso. Cuando la salida se redirige o canaliza, no puede verla, por lo que no tiene un indicador de progreso, a menos que la barra de progreso esté activada.