我想要一个命令从Windows转换为Unix文件名,只是用反斜杠替换反斜杠...,但不要用“”引号,因为复制粘贴时比较麻烦。
它在另一个方向(u2w)上使用带引号且不带引号的输入,但不适用于w2u。
machine:~/glebbb> w2u "a\b\c"
a/b/c
machine:~/glebbb> w2u a\b\c
abc
我如何使其起作用?我尝试了各种转义,回显-E,printf等形式,似乎没有任何作用!
function w2u {
if [ -z "$1" ] ; then
echo "w2u: must provide path to convert!"
return 1
else
printf "\n%s\n\n" "$1" | sed -e 's#\\#\/#g'
return 0
fi
}
答案 0 :(得分:1)
如果您要复制粘贴并且路径包含在X剪贴板中,则可以使用xclip
:
xclip -o | sed -e 's#\\#\/#g'
如果您要转换的文件路径很多,则可以处理整个文件:
sed ... < file
将产生一个新流,其中反斜杠更改为斜杠。
否则,我想不出任何办法如何不将参数转义到w2u
却又使反斜杠失去了意义。