O script que você postou converte 4 * n espaços em n guias, somente se esses espaços forem precedidos apenas por guias.
Se você deseja substituir 4 espaços por 2 espaços, mas apenas em recuo, enquanto é possível fazer isso com sed, eu recomendo o Perl.
perl -pe 's{^((?: {4})*)}{" " x (2*length($1)/4)}e' file
No sed:
sed -e 's/^/~/' -e ': r' -e 's/^\( *\)~ / ~/' -e 't r' -e 's/~//' file
Você pode usar indent
em seu lugar.