我在 bash 中定義了以下字串變數 version
Uploaded registry/version1.3.1
我需要轉義/兩次,使字串看起來像:
registry\\/version1.3.1
有沒有辦法用來sed查找和替換所有/到\\/?
uj5u.com熱心網友回復:
一個反斜杠用于將引數更改為文本,反之亦然。
echo 'Uploaded registry/version1.3.1' | sed 's/\//\\\\\//g'
Uploaded registry\\/version1.3.1
在這種情況下,您需要\\一個反斜杠和\/一個斜杠。
uj5u.com熱心網友回復:
使用 sed
您需要\\在命令的 RHS(右側)中使用兩個反斜杠 ,sed來替換為單個反斜杠。
此外,最好使用除/正則運算式分隔符以外的字符以避免過度轉義。
您可以因此使用
sed 's,/,\\\\/,g'
請參閱此在線演示:
echo 'Uploaded registry/version1.3.1' | sed 's,/,\\\\/,g'
# => Uploaded registry\\/version1.3.1
使用字串操作
你也可以在 Bash 中使用字串操作:
s='Uploaded registry/version1.3.1'
echo "${s//\//\\\\\/}"
# => Uploaded registry\\/version1.3.1
在這里,反斜杠需要再次加倍,并\添加一個來轉義/s。需要注意的是"${s//a/b}指:替換所有出現的a與b在s變。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/333640.html
下一篇:同時運行檔案的所有行
