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