Você normalmente deseja usar -e (possivelmente junto com -f ) quando quiser passar mais de uma expressão como sed code.
As expressões dadas após -e e o conteúdo dos arquivos fornecidos após -f são concatenados (com novas linhas) para formar o script sed . Quando você deseja transmitir apenas uma expressão literal, pode omitir o -e e passar essa expressão como o primeiro argumento não opcional para sed .
sed -e s/foo/bar/ -f file.sed -e 'a\' -e foo
é o mesmo que fazer:
sed 's/foo/bar/
content of file.sed
a\
foo'
Como há locais (como após os comandos w / r / # e mais, dependendo das implementações), em que você não pode usar ; para separar comandos e outros em que você precisa newline (como esse a acima), usar vários -e s é uma maneira de manter o comando sed em uma linha (útil para shells como csh que tornam difícil inserir comandos de várias linhas ou shells como ksh , que faz com que seja difícil editá-los
No caso de:
sed 's/foo/bar/g'
vs
sed -e 's/foo/bar/g'
Isso não faz diferença alguma.