используя sed для замены целого слова, содержащего '='? - PullRequest
0 голосов
/ 27 марта 2010

РЕДАКТИРОВАТЬ
у меня есть что-то вроде этого в файле:
imagecolor = 0
arrayimagecolorcopy = 0
arrayimagecolorcopy3d = 0

когда я использую sed -i -e 's/imagecolor=0/imagecolor=1/', это изменит 1 и 2 строку. Но я хочу только заменить первую строку.
Я также попробовал sed с \ <\> и \ b \ b, но не повезло. Может ли это быть знак «=»? Есть ли у нас что-то вроде -w как в команде grep?

Спасибо.

1 Ответ

2 голосов
/ 27 марта 2010

Кажется, у меня работает:

$ 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...