2014-09-02 211 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