Lua函数将windows路径转换为unix路径

Gav*_*vin 2 lua

我遇到了 Windows 使用反斜杠作为路径分隔符的永恒问题。我想要一个将 Windows 路径转换为 ​​Unix 路径的 Lua 函数。

  1. 我知道我可以通过转义反斜杠来为变量分配路径,例如

    文件名 = "P:\\user\\scripts\\config.lua"

  2. 我知道这可以使用不同的字符串分隔符来完成,例如

    文件名 = [[P:\user\scripts\config.lua]]

  3. 我知道我不能使用 string.gsub,因为在传递给 gsub 之前,单个反斜杠要么被删除,要么被解释为转义序列。

因此,使用 Windows 当我将文件名分配给变量时遇到问题,因为字符串包含单个反斜杠,例如

filename = arg[0]
filename = debug.getinfo(2, "S").source:sub(2)
Run Code Online (Sandbox Code Playgroud)

如何将此字符串转换为带有正斜杠的 unix 样式字符串?

function unixpath(filename)
    if filename~=nil then

    else
        return nil
    end
end

print(unixpath(arg[0]))
print(unixpath(debug.getinfo(2, "S").source:sub(2)))
print(unixpath([[P:\user\scripts\config.lua]]))
Run Code Online (Sandbox Code Playgroud)

Jua*_*rez 6

对我有用:

$ lua
Lua 5.3.4  Copyright (C) 1994-2017 Lua.org, PUC-Rio
> w = "c:\\windows\\system32"
> w
c:\windows\system32
> w:gsub("\\", "/")
c:/windows/system32     2
Run Code Online (Sandbox Code Playgroud)