windows - 如何在 Perl 中规范化 Windows 文件路径?

标签 windows perl filepath backslash

更新:

我可以使这个问题更容易解决:

我想弄清楚正确的正则表达式是什么,以用两个反斜杠替换任何一次出现的反斜杠。

我想把这个:

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/

相关文章:

c# - 并行获取所有进程

perl - 将 Perl 脚本作为 CGI 脚本运行与从 cmd 行运行

c++ - 进程挂起,PIPE 被阻塞

windows - 完成命令行后关闭程序

windows - 在 Windows x86 中开始使用 NODE.JS

python - 除了 Udp6SocketTransport Pysnmp 之外还有其他替代方案吗

linux - 使用 Perl 在 linux(和 windows)上读取密码保护的 XLSX

java - 如何使文件路径通用,适合所有操作系统?

c++ - 解析文件路径中定义的所有符号链接(symbolic link)

c# - 获取文件的相对路径 C#