como pesquisar tags que não correspondem ao padrão

0

No meu arquivo xml, tenho muitas tags de localização. por exemplo:

 <location>file:///home/faizal/Music/THE%20DOORS/Studio%20albums/2007%20Infected%20Mushroom%20Presents%20-%20The%20Doors%20Remixed%20(2%20CD)%20@320/CD2/07%20Break%20on%20Through%20(Infected%20Mushroom%20Guitar%20Rmx).mp3</location>

Gostaria de encontrar todas as tags de localização que não começam com file:///home/faizal/Music/ . Como eu iria escrever um comando vim para fazer isso?

O comando abaixo não exclui linhas com o padrão file:///home/faizal/Music/ . o que estou fazendo errado?

/^\(.*\<location\c\>\)\&\(.*file\:\/\/\/home\/home\/faizal\/Music\)\@!
    
por faizal 29.08.2014 / 05:06

1 resposta

2

Uso:

/\v(.*\<location\>)&(.*file:\/\/\/home\/faizal\/Music)@!
  • \v significa que no padrão depois de todos os caracteres ASCII, exceto '0' - '9', 'a' - 'z', 'A' - 'Z' e '_' têm um significado especial. "muito mágica"
  • @! é uma afirmação negativa
  • . corresponde a qualquer caractere
  • * corresponde a qualquer número do átomo anterior
  • & é o booleano AND
  • () está agrupando em um átomo
  • / é o comando de localização
  • \ é o caractere de escape

Referência: link ,

Obrigado @muru

    
por faizal 29.08.2014 / 06:29