Como parece que realmente não há como passar argumentos, a melhor solução possível é usar um espaço reservado intermediário que é substituído na linha de comando. foo-to-bar.sed :
s/foo/#ARG1#/
Invocação:
sed -f foo-to-bar.sed -e "s/#ARG1#/bar/g" some-file.txt
Explicação: foo é primeiro substituído por #ARG1# e, em seguida, com bar passado da linha de comando. Observe que é importante ter o -e após -f . Também não há nada especial sobre o delimitador # , use qualquer coisa que normalmente não apareceria no arquivo.