sed
文字列置換キーワードを使用するには、sed
置換文字列を解釈してください。代替文字列にsed
特殊と見なされる文字(charなど)が含まれている場合、何をすべきかを示す文字が/
代替文字列に含まれたくない限り失敗します。sed
前任者:
VAR="hi/"
sed "s/KEYWORD/$VAR/g" somefile
sed
特殊文字を解釈しないように代替文字列を指示する方法はありますか?私が望むのは、内容が何であれ、ファイルのキーワードを変数の内容に置き換えることができることです。
ベストアンサー1
置換部分には4つの特殊文字しかありません:\、、 &改行、区切り記号(引用する)
$ VAR='abc/def&ghi\foo
next line'
$ repl=$(sed -e 's/[&\\/]/\\&/g; s/$/\\/' -e '$s/\\$//' <<<"$VAR")
$ echo "$repl"
abc\/def\&ghi\\foo\
next line
$ echo ZYX | sed "s/Y/$repl/g"
Zabc/def&ghi\foo
next lineX