Para editar o arquivo no local com OSX sed , você precisa definir a extensão vazia:
$ sed -i '' '1i\
#encoding:utf-8' filename
E você precisa de uma nova linha literal após i\
. Isso é especificado por POSIX sed .
Apenas o GNU sed permite que o texto seja inserido na mesma linha com o comando.
sed
também pode trabalhar com vários arquivos de uma só vez, então você pode usar -exec command {} +
form:
$ find . -iname "*.erb" -type f -exec sed -i '' '1i\
#encoding:utf-8' {} +