sed
está imprimindo o arquivo com a substituição que você disse para fazer.
Acho que uma ideia melhor pode ser a seguinte:
#!/bin/bash
IDS=$(curl -v --silent "http://example.com" 2>&1 | grep -Eo 'data-user_id="[0-9]+"' | grep -Eo "[0-9]+")
echo "$IDS" | tr ' ' '\n' >> "ids"
Isso irá ecoar $IDS
e aplicar o espaço à nova tradução de linha antes de anexar ao arquivo.