Dicas da lista vi-br
Fonte: Grupo vi-br do Yahoo, mensagem 853. O Yahoo Grupos foi encerrado em dezembro de 2020 e as mensagens não foram preservadas; resta apenas uma cópia arquivada da página do grupo.
Problema: Essa deve ser uma pergunta comum. Suponha o seguinte conteúdo de arquivo:
... // várias linhas
texto1000texto // linha i
texto1000texto // linha i+1
texto1000texto // linha i+2
texto1000texto // linha i+3
texto1000texto // linha i+4
... // várias linhas
... // várias linhas
texto1001texto // linha i
texto1002texto // linha i+1
texto1003texto // linha i+2
texto1004texto // linha i+3
texto1005texto // linha i+4
... // várias linhas
:10,20! awk 'BEGIN{i=1}{if (match($0, /[0-9]+/)) print substr($0,1,RSTART-1) (substr($0,RSTART,RLENGTH) + i++) substr($0,RSTART+RLENGTH)}'
:let i=1 | 10,20 g/texto\d\+texto/s/\d\+/\=submatch(0)+i/ | let i=i+1
:help /
:help :s
:help pattern