sed, чтобы изменить строку в файле только один раз - PullRequest
7 голосов
/ 10 ноября 2011

предполагают, что у меня есть файл example следующим образом:

c
a
b
a
b
d

, и я хочу изменить первое вхождение a на e.Затем я делаю это:

sed -i 's/a/e/' example

и все a изменено на e.

Так есть ли способ заставить sed заменить в файле только один раз?

Спасибо.

Ответы [ 2 ]

12 голосов
/ 10 ноября 2011

Применяя информацию из дубликата ссылки Aziz к вашему вопросу, я думаю, что это даст вам желаемый результат для вашего дела:

sed -i '0,/a/s//e/' example
4 голосов
/ 23 декабря 2011

Применяя информацию из дубликата ссылки Азиза на ваш вопрос, я думаю, что это даст вам желаемый результат для вашего дела:

sed -i '0,/a/s//e/' example

Ответ Рабе хорош.Но добавление пробела между диапазоном адресов и командой 's' делает это более понятным.вот так:

sed -i '0,/a/ s//e/' example

И версия Уилсона кажется избыточной.

...