use*_*193 5 linux windows bash sed path
我是shell脚本的新手,并尝试完成以下操作,将Windows路径转换为linux路径并导航到该位置:
输入:cdwin "J:\abc\def"
动作:cd /usr/abc/def/
所以,我正在改变以下内容:
"J:" -> "/usr"
Run Code Online (Sandbox Code Playgroud)
和
"\" -> "/"
Run Code Online (Sandbox Code Playgroud)
这是我的尝试,但它不起作用.如果我回应它,它只返回一个空白:
function cdwin(){
    line="/usrfem/Projects$1/" | sed 's/\\/\//g' | sed 's/J://'
    cd $line
}
Run Code Online (Sandbox Code Playgroud)
    您需要捕获变量然后处理它.
例如,这将使它:
function cdwin(){
    echo "I receive the variable --> $1"
    line=$(sed -e 's#^J:##' -e 's#\\#/#g' <<< "$1")
    cd "$line"
}
Run Code Online (Sandbox Code Playgroud)
然后你打电话给它
cdwin "J:\abc\def"
Run Code Online (Sandbox Code Playgroud)
命令
line=$(sed -e 's#^J:##' -e 's#\\#/#g' <<< "$1")
Run Code Online (Sandbox Code Playgroud)
相当于
line=$(echo $1 | sed -e 's#^J:##' -e 's#\\#/#g')
Run Code Online (Sandbox Code Playgroud)
并取代所有的\与/,结果保存到变种line.请注意,它使用另一个分隔符,#以使其更具可读性.它也消除了领先J:.
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           11086 次  |  
        
|   最近记录:  |