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.