我一直在尝试使用 sed 输入一个值,其中包含多个特殊字符。示例值//*[@id='login_username']
如果我们在没有任何转义字符的情况下使用此值,则该命令将如下所示:
sed -i 's/Text to be replaced/new text and some xpath like //*[@id='login_username']/' target.txt
我尝试使用字符转义每个特殊字符,结果为以下结构:
//*[@id='login_username']
还尝试用双引号将值括起来,但这也不起作用。我还能尝试什么?
您可以在s///
命令中使用不同的分隔符而不是/
,例如s|||
:
sed -i "s|Text to be replaced|new text and some xpath like //*[@id='login_username']|" target.txt
在替换文本中,您唯一需要转义的内容是:
"
因为它用于将sed
参数括起来|
因为它在s///
命令中用作分隔符
您可以使用转义这些,例如
"
和|
.