Как отформатировать путь dos к пути unix в командной строке cygwin
При использовании Cygwin я часто копирую путь Windows и вручную изменяю все слэши в формате Unix. Например, если я использую Cygwin и мне нужно изменить каталог, я ввожу:
cd C:\windows\path
затем отредактируйте это на
cd C:/windows/path
(Как правило, путь намного длиннее этого). Есть ли способ использовать sed или что-то еще, чтобы сделать это автоматически? Например, я попробовал:
echo C:\windows\path|sed 's|\\|g'
но получил следующую ошибку:
sed: -e expression #1, char 7: unterminated `s' command
Моя цель - уменьшить ввод текста, поэтому, возможно, я мог бы написать программу, которую я мог бы назвать. В идеале я бы напечатал:
conversionScript cd C:/windows/path
и это будет эквивалентно типу:
cd C:\windows\path
Ответы
Ответ 1
Спасибо всем. Очевидно, все, что мне нужно, это одинарные кавычки по пути:
cd 'C:\windows\path'
и Cygwin преобразует его. Cygpath тоже будет работать, но также нужны одинарные кавычки, чтобы оболочка не могла использовать символы обратной косой черты.
Ответ 2
Читайте о команде cygpath.
somecommand `cygpath -u WIN_PATH`
например.
Ответ 3
cmd.exe
не нравится одиночные кавычки. Вы должны использовать двойные кавычки
C:\test>echo C:\windows\path|sed "s|\\|/|g"
C:/windows/path
Ответ 4
Вы заменяете обратную косую черту с помощью утилиты unix sed
Ниже я использую звездочку "*" для разделения полей в директиве s
sed "s*\\\*/*g"
Трюк состоит в том, чтобы использовать один обратный слэш больше, чем вы могли подумать