微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Windows PATH以bash中的posixpath转换

我怎么能通过标准的msysfunction(如果不是失去了普遍性) Windows目录path(如c:/libs/Qt-static )转换到正确的POSIX dirpath( /c/libs/Qt-static ) ? 反之亦然(特别是intrested)?

如何获得创build时间(甚至毫秒)的文件夹在Windows中的文件夹#

如何search程序的内存中的图像/ png / jpeg /任何其他types,并显示它?

通过Anaconda在Windows上为Python安装`opencv_contrib`

用> 70%的cpu利用率创build线程

Windows的PHP Imagick不工作

我不知道msys ,但一个快速的谷歌搜索显示,它包括sed实用程序。 所以,假设它在msys工作方式与在本地Linux上的工作方式类似, msys是一种方法

从Windows到POSIX

您将不得不用斜杠替换所有反斜杠,删除驱动器号后的第一个冒号,并在开头添加一个斜杠:

echo "/$pth" | sed 's/\///g' | sed 's/://'

或者,如xaizek所述,

echo "/$pth" | sed -e 's/\///g' -e 's/://'

从POSIX到Windows

您将不得不添加一个分号,删除一个斜杠并用反斜杠替换所有的斜杠:

echo "$pth" | sed 's/^///' | sed 's///\/g' | sed 's/^./:/'

或更有效地,

echo "$pth" | sed -e 's/^///' -e 's///\/g' -e 's/^./:/'

其中$pth是存储Windows或POSIX路径的变量。

你在cygwin上使用它吗? 如果是,那么在cygwin包中有一个名为cygpath.exe的现成工具,只是为了做到这一点。

输出类型选项:

-d,--dos打印DOS(简称)形式的NAME(C: PROGRA〜1 )

-m, - 像--windows混合,但用正则斜杠(C:/ WINNT)

-M, - 模式文件模式(binmode或textmode)

-u,--unix(认)打印NAME的Unix形式(/ cygdrive / c / winnt)

-w,--windows打印Windows窗体的名称(C: WINNT)

-t,--type TYPE print TYPE形式:'dos','mixed','unix'或'windows'

这是我的实现(在git bash上测试)。

从POSIX到Windows

sed ',/$,!s,$,/,^/,s,:/,2 s,\,g ' <<< "$@"

效劳于:

/c/git relative/dir c:/git ~ . .. /c /c/ ./relative/dir /sd0/some/dir/

/ <path with space>

说明:

,2 (转换/drive/dir/ to /drive:/dir/ )是它的核心,并在第二个/之前插入。 为了可读性,我使用delim来代替/ 。 如果以/ (,)开头,则用/替换:/为第二个出现。 我不想假定驱动器字母长度为1,所以这适用于/sd0/some/dir 。

s,删除前面的/和s,g将all /转换为 。

,是处理/c的转角情况,并确保第二个/ ( /c/ )为下一个命令工作。

注意:

如果这里string <<<在你的shell中不起作用,那么你可以echo和pipe as

echo "$@" | sed ...

勘误表

这里是脚本

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐