1

我在字符串中有一个特殊的字符“&”,如何使用 sed?符号前的空格&是问题所在。

word="Word"
str="Word: One \\& Three" 
echo "$str" | sed -e 's/'$word'.*/'$str'/g' 
4

1 回答 1

2

如果您使用单引号',shell 将无法扩展变量,因为它将按字面意思对待。

您可以通过执行以下操作插入变量:

- 双引号:

使用双引号"shell 将扩展您的变量并保留空格。

 sed -e "s/$word.*/$str/g"

- 单引号:

如果您有很多特殊字符,请对模式使用单引号,对变量使用双引号。

sed -e 's/'"$word"'.*/'"$str"'/g'
于 2013-06-10T18:33:40.077 回答