Вам просто нужно n
.
точки.
n=[num]
sed "s/.\{$n\}keyword/REPLACE/"
... где [число]
должно работать как положительное целое число.
Обратите внимание, что это отличается от .*ключевого слова
, по крайней мере, в паре важных аспектов.
.*
применяется к любым/всем символам, которые встречаются до появления последнего ключевого слова в пространстве шаблонов
sed
, и поэтому, если несколько ключевых слов
совпадают одновременно, то *
съест все, кроме последнего из них.
.\{[num]\}ключевое слово
будет соответствовать только первому вхождению образца, который может быть найден в пространстве образца. .\{[num]\}
потребует как минимум [num]
- чтобы квалифицировать соответствие, необходимо считать символы препинания до ключевого слова, в то время как .*
может соответствовать ключевому слову
, даже если оно находится в начале строки.
Выражение, которое более похоже на это поведение в том, что оно будет соответствовать -[num]
chars, возникающим до ключевого слова -
, является...
sed "s/.\{0,$n\}keyword/REPLACE/"