У меня есть переменная, которая хранит путь Unix, например:
typeset unixpath=/foo/bar/
И мне нужно преобразовать его в путь DOS, используя сценарии KornShell (ksh):
dospath=\\\\foo\\\\bar\\\\
Попробуйте:
dospath=`echo $unixpath | sed 's/\//\\\\/g'`
Спасибо David Wolever за напоминание о необходимости использовать $ для доступа к значению переменной!
AT & T ksh93 для Windows позволяет помечать переменные для автоматического преобразования с помощью 'typeset -H':
$ typeset -H home = $ HOME && print $ home = $ HOME C: \ Users \ Хенк = / дом / Henk
Если у вас есть ksh93 :
ksh-M 93t 2008-11-04$ unixpath=/foo/bar/ ksh-M 93t 2008-11-04$ print ${unixpath//\//\\\\\\\\} \\foo\\bar\\
Я бы добавил в качестве комментария к ответу eleven81, но у меня нет баллов
, чтобы сделать его немного более читабельным, как насчет использования альтернативного разделителя sed
т.е.
dospath=`echo $unixpath | sed 's./.\\\\.g'`