Você só precisa de n
.
dots.
n=[num]
sed "s/.\{$n\}keyword/REPLACE/"
... onde [num]
deve representar um número inteiro positivo deve funcionar.
Note que é diferente de .*keyword
em pelo menos alguns aspectos importantes.
-
.*
aplica-se a qualquer / todos os caracteres que ocorrem antes da última ocorrência dekeyword
no padrão desed
espaço, e se houver várioskeywords
correspondidos de uma só vez,.*
consumirá todos menos o último deles.-
.\{[num]\}keyword
corresponderá apenas à ocorrência primeira do padrão que pode ser encontrado no espaço padrão.
-
-
.\{[num]\}
irá exigir pelo menos[num]
-contar caracteres para ocorrer antes palavra-chave para se qualificar uma correspondência, ao passo que.*
pode corresponder akeyword
, mesmo que seja encontrado à frente de uma linha.-
Uma expressão que mais se assemelha a esse comportamento, pois corresponderá a até
[num]
caracteres que ocorrem antes dekeyword
ser ...sed "s/.\{0,$n\}keyword/REPLACE/"
-