Como extrair parte da linha e anexá-la ao final da linha no VIM com regex?

1

Eu tenho um arquivo com um número de URLs no formulário:

link

Gostaria de extrair o sitehost da URL e anexá-lo ao final da linha:

link www.edu-factory.org

Alguma ideia de como fazer isso?

    
por sumek 28.02.2011 / 12:39

1 resposta

2

Uma maneira de fazer isso:

:s:\(.*//\)\([^/]*\)\(/.*\): :

Explicação:

  • :s: - Usando substituição
  • \(.*//\) - Capture a peça até a barra dupla (grupo 1)
  • \([^/]*\) - Captura tudo o que não é uma barra (grupo 2)
  • \(/.*\) - Captura a primeira barra simples e tudo depois dela (grupo 3)
  • : : - Grupos de saída 1, 2 e 3 seguidos por um espaço e grupo 2 novamente

Editar:

Você pode classificar isso para:

:s:\(.*//\)\([^/]*\)\(/.*\):& :

O "e" comercial gera a cadeia combinada inteira, que inclui toda a linha, desde que a regex comece e termine com .* . Você poderia usar %code% em vez do "e" comercial.

    
por 28.02.2011 / 13:06

Tags