2014-09-02 337 views
1

我希望能夠用sed把輸入如:用sed與正斜槓替換所有反斜槓(雙打太)

\\servername\folder\folder\folder 

//servername/folder/folder/folder 

在這裏看到了這個問題但回答「echo'C:\ foo \ bar.xml'| sed's/\ /// g'」提供此字符串:「/ servername/folder/folder/folder」(缺少一個正斜槓)。

回答

3

的sed似乎有點矯枉過正,因爲只需要音譯單個字符。您可以使用專爲這一特定的任務TR:

echo '\\servername\folder\folder\folder' | tr '\\' '/' 

由於@Kent注意到它,戰略經濟對話的音譯命令Y:

echo '\\servername\folder\folder\folder' | sed 'y#\\#/#' 
+2

+1的'tr',但sed的不對於這個任務沒有用處,除''cmd可以做到這一點外,對於單個字符,sed具有'y' cmd,這更適合於這項任務。 – Kent 2014-09-02 15:18:19

+0

@Kent:你說得對。我總是忘記sed有其他命令。 – 2014-09-02 15:19:55

+0

這不起作用,輸出是/ servername /文件夾/文件夾/文件夾,即缺少一個斜線。就像我提到的問題一樣。 – Osher 2014-09-02 15:27:15

1

您可以使用:

s='\\servername\folder\folder\folder' 
sed 's~\\~/~g' <<< "$s" 
//servername/folder/folder/folder