
varA
bash プログラミングでは、たとえば、シンボルを含む文字列を格納する変数 があるとします。 に次の値が含まれている#
と仮定すると、の先頭にバックスラッシュを追加して、出力を次のようになります。次のコードは目的を達成するためのものですが、文字列の置換が機能していないようで、sed コマンドからの出力を別の変数に割り当てることができません。これについて何か情報はありますか?varA
ASD# 1
\
#
ASD\# 1
varA="ASD# 1"
echo $(sed s/\#/\\#/g <<< ${varA})
答え1
表現に引用符がありませんsed
。
試す:
$ varA="ASD# 1"
$ echo "$(sed 's/#/\\#/g' <<< "${varA}")"
ASD\# 1
答え2
sed
1 つの変数だけに使用するとオーバーヘッドが発生します。 では をbash
使用できます${varA/\#/\\\#}
。