2012-12-20 164 views
3

我已經試過這樣:如何用「 /」使用sed替換路徑字符串中的「/」?

PATH="/user/dj/a/mydir" 
PATH_FORMAT=`echo "${PATH}" | sed 's/\//\\\//'` 

但它只替換第一個 「/」。 我想要得到的PATH_FORMAT值爲:

"\/user\/dj\/a\/mydir" 

我怎麼能這樣做?在評論

echo "${PATH}" | sed 's/\//\\//g' 

或者更具可讀性,因爲每喬納森Wakely

+0

你似乎缺少一個反斜槓,在我的答案中看到最新的編輯。 – Thor

+1

爲什麼你需要有這個替代品?我從來沒有見過這種東西的良好用途...... –

回答

6

添加g標誌的替換命令

echo "${PATH}" | sed 's:/:\\/:g' 

要達到什麼樣的,你在你的問題描述,你需要一個更多的反斜槓:

echo /user/dj/a/mydir | sed 's:/:\\\/:g' 

輸出:

\/user\/dj\/a\/mydir 
+3

另外,如果你選擇不同的分隔符,你可以避免[傾斜牙籤綜合症](http://en.wikipedia.org/wiki/Leaning_toothpick_syndrome):'echo「$ { PATH}「| sed的:/:\\ /:g'' –

-1
sed "s%/%\\\\\\/%g" 

。 就這麼簡單