使用sed替换包含'='的整个单词?

时间:2010-03-26 21:13:58

标签: regex sed

编辑
我在文件中有这样的东西:
imagecolor = 0
arrayimagecolorcopy = 0
arrayimagecolorcopy3d = 0

当我使用sed -i -e 's/imagecolor=0/imagecolor=1/'时,它会改变1和2行。但我只想要它取代第一线。
我也试过sed与\< \>和\ b \ b,但没有运气。可能是'='标志?我们在grep命令中有像-w这样的东西吗?

谢谢。

1 个答案:

答案 0 :(得分:2)

这似乎对我有用:

$ echo 'imagecolor=0
> imagecolorcopy=0
> imagecolorcopy3d=0' > input.txt

$ sed -i -e 's/imagecolor=0/imagecolor=1/' input.txt

$ cat input.txt
imagecolor=1
imagecolorcopy=0
imagecolorcopy3d=0

如果您只想在整行匹配时进行替换,请尝试锚定正则表达式:

$ sed -i -e 's/^imagecolor=0$/imagecolor=1/' input.txt