Puede imprimir un encabezado específico con un solo comando sed o awk, pero los encabezados HTTP usan finales de línea CRLF.
curl -sI stackoverflow.com | tr -d '\r' | sed -En 's/^Content-Type: (.*)/\1/p'
Con awk puedes agregar FS=": "
si los valores contienen espacios:
awk 'BEGIN {FS=": "}/^Content-Type/{print $2}'
Las variables especificadas para "-w" no están conectadas directamente con el encabezado http. Así que parece que tienes que "analizarlas" por tu cuenta:
curl -I "server/some/resource" | grep -Fi etag