如何在#符號前面插入反斜線?

如何在#符號前面插入反斜線?

在 bash 程式設計中,給定一個變量,例如varA,它儲存包含#符號的字串。假設varA包含這個值:ASD# 1,我需要\在 的前面附加一個反斜杠#,所以輸出可能有這個:ASD\# 1。以下程式碼是為了實現我的目標,只是字串替換似乎不起作用,並且我無法將 sed 命令的輸出分配給另一個變數。有看到這個嗎?

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

答案1

你的sed表達中缺少引號。

嘗試:

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

答案2

sed僅使用一個變數會產生開銷。在bash你可以使用${varA/\#/\\\#}.

相關內容