# 記号の前にバックスラッシュを挿入するにはどうすればいいですか?

# 記号の前にバックスラッシュを挿入するにはどうすればいいですか?

varAbash プログラミングでは、たとえば、シンボルを含む文字列を格納する変数 があるとします。 に次の値が含まれている#と仮定すると、の先頭にバックスラッシュを追加して、出力を次のようになります。次のコードは目的を達成するためのものですが、文字列の置換が機能していないようで、sed コマンドからの出力を別の変数に割り当てることができません。これについて何か情報はありますか?varAASD# 1\#ASD\# 1

varA="ASD# 1"
echo $(sed s/\#/\\#/g <<< ${varA})

答え1

表現に引用符がありませんsed

試す:

$ varA="ASD# 1"
$ echo "$(sed 's/#/\\#/g' <<< "${varA}")"
ASD\# 1

答え2

sed1 つの変数だけに使用するとオーバーヘッドが発生します。 では をbash使用できます${varA/\#/\\\#}

関連情報