更新:
我可以使这个问题更容易解决:
我想弄清楚正确的正则表达式是什么,以用两个反斜杠替换任何一次出现的反斜杠。
我想把这个:
vlc.plugin.path = C:\Program Files\JekyllV0.9.2\\VLC_1.0.0\\plugins
进入:
vlc.plugin.path = C:\\Program Files\\JekyllV0.9.2\\VLC_1.0.0\\plugins
原始问题:
我想使用 Perl 正则表达式更改文件中的以下内容:
- 单个反斜杠到两个反斜杠的所有出现
- 单个正斜杠到两个反斜杠的所有出现
我尝试了以下方法:
perl" -p -i.orig -e "s#\\#\\\\#g" -e "s#/#\\\\#g" %VIDEOLOG_PROPERTIES_FILE%
%VIDEOLOG_PROPERTIES_FILE% 包含:
vlc.plugin.path = C:\Program Files\JekyllV0.9.2/VLC_1.0.0/plugins
最佳答案
对于基本替换:
perl -p -i.orig -e "s#[/\\]#\\\\#g" %VIDEOLOG_PROPERTIES_FILE%
仅替换不与同一字符的另一个实例相邻的斜杠和反斜杠:
perl -p -i.orig -e "s#(?<!/)/(?!/)#\\\\#g; s#(?<\\)\\(?!\\)#\\\\#g" %VIDEOLOG_PROPERTIES_FILE%
关于windows - 如何在 Perl 中规范化 Windows 文件路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1308152/