【问题标题】:Convert Unix path to DOS path将 Unix 路径转换为 ​​DOS 路径
【发布时间】:2010-10-13 03:36:14
【问题描述】:

我有一个存储 Unix 路径的变量,例如:

typeset unixpath=/foo/bar/

我必须使用 KornShell (ksh) 脚本将其转换为 DOS 路径:

dospath=\\\\foo\\\\bar\\\\

【问题讨论】:

    标签: unix shell string dos ksh


    【解决方案1】:

    试试:

    dospath=`echo $unixpath | sed 's/\//\\\\/g'`
    

    感谢David Wolever提醒我使用$来访问变量的值!

    【讨论】:

    • 我不是 korn 专家,但我认为在某个地方需要一个“$”...无论如何,如果你没有先发帖,我就是这样做的。
    • 这取决于十一81的意思是:echo /unix/path还是echo $unixpath;任何一个都可能是有效的。
    【解决方案2】:

    如果你有ksh93

    ksh-M 93t 2008-11-04$ unixpath=/foo/bar/            
    ksh-M 93t 2008-11-04$ print ${unixpath//\//\\\\\\\\}
    \\foo\\bar\\
    

    【讨论】:

      【解决方案3】:

      用于 Windows 的 AT&T ksh93 允许您标记变量以进行自动转换 '排版-H':

      $ typeset -H home=$HOME && print $home=$HOME C:\users\Henk=/home/Henk

      【讨论】:

        【解决方案4】:

        我会在十一81的回答中添加评论,但我没有要点

        为了使其更具可读性,如何使用替代的 sed 分隔符

        dospath=`echo $unixpath | sed 's./.\\\\.g'`
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-01-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-10-04
          • 2012-06-30
          • 2022-01-13
          相关资源
          最近更新 更多