例如,如果我有一个输入:
F:mypathtoFile.TXT
我想将其作为输出
/f/my/path/to/File.TXT
即使路径不存在,这也应该有效,所以我不能简单地调用
cd $P && pwd -P
编辑:我想避免使用 sed 和 awk ,因为有更简单的命令可以实现此目的,例如 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:mypathtoFile.TXT
bash-3.1$ canonpath $P
/f/my/path/to/File.TXT