Mude YYYY-MM-DD para AAAAMMDD em todos os lugares no arquivo

1

Eu não posso simplesmente apagar todos os hífens, porque em outros lugares eles são usados como sinais de menos. Eu posso encontrar essas datas com [0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\} , mas não consigo descobrir como manter esses três curingas de dígitos diferentes na memória. Minhas tentativas acabam substituindo as datas pela string de pesquisa (por exemplo, :%s/[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}/[0-9]\{4\}[0-9]\{2\}[0-9]\{2\}/g ).

Alguma ideia? Se houver uma solução de linha de comando, eu adoraria aprender isso também. Obrigado!

    
por Richard Herron 13.02.2011 / 05:51

2 respostas

3

Você só precisa usar grupos de captura:

:%s/\([0-9]\{4\}\)-\([0-9]\{2\}\)-\([0-9]\{2\}\)//g

Os parênteses capturam as correspondências, depois as referências anteriores geram esses grupos de captura. Como os hífens estão fora dos grupos, eles são excluídos.

    
por 13.02.2011 / 06:05
0

Eu não sei o vim, então esta é uma solução alternativa que você ainda pode executar no vim:

Como você pode encontrar os hífens que ocorrem em datas, substitua-os por outra coisa (um caractere ou sttring) que você sabe que não ocorre no documento. Em seguida, faça uma segunda pesquisa / substituição para substituir seu novo caractere / string por nada, excluindo-o.

    
por 13.02.2011 / 05:59