簡単なsedスクリプトを考えてみましょうfoo-to-bar.sed
:
s/foo/bar/
そして簡単な呼び出し:
sed -f foo-to-bar.sed some-file.txt
それでは、代替文字列(この場合はbar)をカスタマイズし、それをsedスクリプトにパラメータとして渡すとします。それは可能ですか?
注:sedスクリプトを削除し、シェル変数をインラインで使用できることを知っています。私は特にsedスクリプトにパラメータを渡すことに興味があります。ドキュメントには何も見つかりませんが、まだ何かが欠けていることを願っています。
ベストアンサー1
実際にはパラメータを渡す方法がないように思えるので、私が考えることができる最善の解決策は、コマンドラインで置き換えられた中間プレースホルダを使用することです。foo-to-bar.sed
:
s/foo/#ARG1#/
移動する:
sed -f foo-to-bar.sed -e "s/#ARG1#/bar/g" some-file.txt
説明:foo
最初に置き換えてから、#ARG1#
コマンドbar
ラインから渡された内容に置き換えます。-e
後で持つことが重要であることに注意してください-f
。区切り文字も特別なものではなく、#
通常ファイルに表示されないものを使用してください。