2010-04-14 130 views
15

使用Cygwin時,我經常複製Windows路徑並手動將所有斜線編輯爲Unix格式。例如,如果我使用Cygwin和需要改變目錄我進入:如何在cygwin命令行上將dos路徑格式化爲unix路徑

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 
+0

您的'sed'命令應該是'sed | \\ |/| g'以避免該錯誤。 – 2010-04-14 22:45:31

回答

11

閱讀有關cygpath命令。

somecommand `cygpath -u WIN_PATH` 

例如,

+0

反引號被markdown語法所吞噬。 – 2010-04-14 22:12:19

1

cmd.exe不喜歡單引號。你應該用雙引號

C:\test>echo C:\windows\path|sed "s|\\|/|g" 
C:/windows/path 
27

謝謝大家。顯然,所有我需要的是路徑圍繞單引號:

CD 'C:\ WINDOWS \路徑'

和Cygwin將其轉換。 Cygpath也可以工作,但它也需要單引號來防止shell使用反斜槓字符。

+1

這也適用於mingw32。大! – tanascius 2011-07-06 19:37:09

1

您使用UNIX的sed

下面我利用明星「*」來單獨以s指令領域取代由斜線反斜槓

 

    sed "s*\\\*/*g" 

訣竅是用一個反斜槓比你更可能認爲需要