O arquivo é truncado quando você redireciona a saída usando > , antes que o comando sed seja executado.
BSD sed
Use sed -i .bak '/^127\.0\.0\.1[[:space:]]/d' hosts para editar um arquivo em linha, salvando um backup com a extensão bak ou sed -i '' [...] para ignorar a criação do backup.
GNU sed
Use sed -ibak '/^127\.0\.0\.1[[:space:]]/d' hosts para editar um arquivo em linha, salvando um backup com a extensão bak ou sed -i [...] para ignorar a criação do backup.
Você também pode fazer isso manualmente, por exemplo, o seguinte:
sed '/^127\.0\.0\.1[[:space:]]/d' hosts > hosts.new
cat hosts.new > hosts
rm hosts.new
Embora essa seja mais uma linha que mv hosts.new hosts , ela reterá os metadados do arquivo de hosts .