如何使用 sed 替换以特殊字符“开头的确切单词

如何使用 sed 替换以特殊字符“开头的确切单词

我需要将“/hotel”替换为“/Tay”

我使用了各种分隔符,例如? $ 但我无法得到它

答案1

人们通常使用正斜杠/作为 sed 分隔符,但您可以使用任何您想要的字符;例如,!。理想情况下,使用不会出现在搜索或替换文本中的分隔符,否则您需要引用它。

$ echo '"/hotel' | sed s!^"/hotel!"/Tay!
"/Tay

我引用:

“酒店

用单引号来防止 shell 对单独的双引号感到困惑。这是一个不带引号的版本(因此必须从 shell 中转义双引号):

$ echo \"/hotel | sed s!^"/hotel!"/Tay!

编辑以包含^“行开头”字符以强制在行开头进行匹配。不匹配的示例:

$ echo foo\"/hotel | sed s!^"/hotel!"/Tay!
foo"/hotel

答案2

做到这一点的一种方法是逃避/带有“\”

echo '"/hotel' | sed 's/\"/hotel/Tay/g'

相关内容