簡體   English   中英

如何在MSYS下使用簡單命令將DOS風格的路徑轉換為Unix風格的路徑?

[英]How to convert a DOS-style path to Unix-style path under MSYS using simple commands?

例如,如果我將其作為輸入:

F:\my\path\to\File.TXT

我想得到這個作為輸出

/f/my/path/to/File.TXT

即使路徑不存在,這也應該起作用,所以我不能簡單地調用

cd $P && pwd -P

編輯:我想避免使用sedawk ,因為有更簡單的命令可以實現這一點,例如tr和Bash內置函數。

這兩個Bash函數將幫助:

canondirslashes() { local p; p="$(echo $1 | tr \\ /)" && echo ${p%/}; }

canonpath() { canondirslashes "$( test "${1:1:1}" != : && echo $1 || echo $(echo /${1::1} | tr [A-Z] [a-z])${1:2} )" ; }

這是一個例子:

bash-3.1$ P=F:\\my\\path\\to\\File.TXT

bash-3.1$ echo $P
F:\my\path\to\File.TXT

bash-3.1$ canonpath $P
/f/my/path/to/File.TXT

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM