使用 sed 搜索和替换 Windows 样式路径

使用 sed 搜索和替换 Windows 样式路径

我的任务是替换\\\\\\\\server\\\path1\\\\path2\\\\ with \\\\server\\path1\\path2\\in的多个条目myfile.txt (删除多余的反斜杠)。

我尝试过使用 sed 来实现此目的,但没有找到任何可以替换的内容:

sed 's:\\\\server\\path1\\path2\\:\\server\path1\path2\:g' myfile.txt

我也尝试转义反斜杠,但也没有找到任何可以替换的内容:

sed 's:\\\\\\\\server\\\\path1\\\\path2\\\\:\\\\server\\path1\\path2\\:g' myfile.txt

这可能是一个蹩脚的问题,但我真的很困惑。我尝试到处寻找一种通过命令来执行此操作的方法,但我尝试的任何方法都不起作用。

答案1

您可以使用

sed -e 's,\\\\,\\,g' -e 's/^\\\([^\\]\)/\\\\\1/' 

(第二部分确保\something变成\\something......您可能想要,也可能不想要,具体取决于您的用例)

那样:

\\something\already\ok   stays ok  (thanks to the 2nd part)
\\\\something\\like\\this becomes \\something\like\this

如果省略第二部分,

\\something\like\that becomes \something\like\that , which is wrong

相关内容