Exibe e edita as linhas combinadas com um padrão particular no vi

1

Estou procurando uma opção no editor VI para exibir apenas as linhas que correspondem à string específica. Depois de listar as linhas, gostaria de editar a palavra e isso deve refletir no arquivo original.

Exemplo: é assim que meu arquivo é:

AAA1

X

Y

Z

AAA3

Z

Y

AB

AAA5

AAA8

Eu quero mudar a sequência de AAA ... como esta

AAA1

X

Y

Z

AAA2

Z

Y

AB

AAA3

AAA4

Eu desejo que eles estejam em seqüência. Então, se eu pesquisar e separar as linhas nas quais o AAA está lá, posso editar essa lista em particular.

Eu usei vim /AAAA/g % | copen para abrir todas as linhas que correspondem ao padrão AAAA. Mas quando eu os edito, isso não está sendo refletido no arquivo original.

    
por Punith Kumar 20.02.2017 / 10:40

2 respostas

0

Você deve usar substituir no vim para substituir uma correspondência específica.

Nesse caso, use essa correspondência de pettern.

:%s/<matching_pattern>/<replace_string>/g

Isso corresponderá a todos os elementos no arquivo com a string de substituição especificada.

    
por 20.02.2017 / 10:52
0

Acho que você precisa de algo assim:

:let i=1 | g/^AAA[0-9]\+/s//\='AAA'.i/ | let i=i+1

Você pode ler sobre "Substituir por números ascendentes"

    
por 21.02.2017 / 04:28

Tags