Yur*_*rij 1 command-line sed text-processing windows-subsystem-for-linux
只想在 Windows 文件路径中转义空格。我正在尝试这个:
echo "111 1111 "| sed -e "s/[[:space:]]/\\ /g"
Run Code Online (Sandbox Code Playgroud)
只匹配空格但不替换。
如果您使用双引号,则bash解释\\并输出\,然后再次将sed其与以下空格一起解释为仅空格。
所以你还需要一个反斜杠:
echo "111 1111 " | sed -e "s/[[:space:]]/\\\ /g"
Run Code Online (Sandbox Code Playgroud)
但最好使用单引号来防止 bash 解释:
echo "111 1111 " | sed -e 's/[[:space:]]/\\ /g'
Run Code Online (Sandbox Code Playgroud)
输出:
111\ \ 1111\
Run Code Online (Sandbox Code Playgroud)
替代方法:
如果您将文件路径作为变量,则可以使用 Shell 方法:
path="111 1111 "
echo ${path// /\\ }
Run Code Online (Sandbox Code Playgroud)