【发布时间】:2014-09-02 15:09:50
【问题描述】:
我希望能够使用 sed 接受输入,例如:
\\servername\folder\folder\folder
到
//servername/folder/folder/folder
在这里看到了这个问题,但答案“echo 'C:\foo\bar.xml' | sed 's/\///g'”提供了这个字符串:“/servername/folder/folder/folder”(一个缺少正斜杠)。
【问题讨论】:
我希望能够使用 sed 接受输入,例如:
\\servername\folder\folder\folder
到
//servername/folder/folder/folder
在这里看到了这个问题,但答案“echo 'C:\foo\bar.xml' | sed 's/\///g'”提供了这个字符串:“/servername/folder/folder/folder”(一个缺少正斜杠)。
【问题讨论】:
sed 似乎有点矫枉过正,因为您只想音译一个字符。您可以使用专为此特定任务设计的 tr:
echo '\\servername\folder\folder\folder' | tr '\\' '/'
@Kent 注意到,sed 有音译命令 y:
echo '\\servername\folder\folder\folder' | sed 'y#\\#/#'
【讨论】:
tr,不过sed 对这个任务也不是没用,除了s cmd 可以,对于单字符,sed 有y cmd,更适合完成这项任务。
你可以使用:
s='\\servername\folder\folder\folder'
sed 's~\\~/~g' <<< "$s"
//servername/folder/folder/folder
【讨论】: