我想用来sed
将斜杠更改为反斜杠和斜杠,即/
-> \/
。但这不起作用。这是一个小例子:
#!/bin/bash
TEST=/etc/hallo
echo $TEST
echo $TEST | sed "s/hallo/bello/g"
echo $TEST | sed "s/\//\\\//g"
前三行的输出如假设的那样。但最后一个不起作用。为什么?最后一部分如何修改?
答案1
对您使用的表达式使用单引号:
sed 's/\//\\\//g'
在双引号中,\
有特殊含义,所以你必须反斜杠它:
sed "s/\//\\\\\//g"
但更改分隔符会更干净:
sed 's=/=\\/=g'
sed "s=/=\\\/=g"
答案2
尝试:
sed 's/\//\\\//g'
或使用另一个分隔符来防止转义斜杠:
sed 's,/,\\/,g'