Это может работать для вас:
sed '1,/MatchMeOnce/s//MATCHED/' file
Это будет работать для всех вариантов sed, если MatcMeOnce
находится на 2-й строке или больше, или это (GNU sed):
sed '0,/MatchMeOnce/s//MATCHED/' file
, которая удовлетворяет вышеуказанным требованиям:
Или другая альтернатива (все sed), которая хлебает весь файл в память:
sed ':a;$!{N;ba};s/MatchMeOnce/MATCHED/' file
, который имеет дополнительное преимущество в том, что если вы хотите выбрать n-ное, а не 1-е из MatchMeOnce
, все, что вам нужно, это изменить флаг вхождения, т. Е. Изменить второе вхождение:
sed ':a;$!{N;ba};s/MatchMeOnce/MATCHED/2' file
Чтобы изменить последнее вхождение, используйте:
sed ':a;$!{N;ba};s/\(.*)MatchMeOnce/\1MATCHED/' file