Estou tentando usar o Vim para encontrar, via /
, linhas que começam e terminam de maneiras específicas. Em particular, eu estaria procurando por linhas que começam com o caractere >
e sem a string RNA
no final. Por exemplo, eu gostaria de encontrar esta linha
>NM_001010867.4 Homo sapiens iron-sulfur cluster assembly factor IBA57 (IBA57),transcript variant 1, mRNA; nuclear gene for mitochondrial product
em uma busca, mas não encontrei esta linha
>NR_107042.1 Homo sapiens microRNA 8075 (MIR8075), microRNA
Procurei muito por uma solução, mas não consegui encontrar nenhuma. Qualquer ajuda seria muito apreciada.
Usar:
Onde
\@!
está o operador de previsão negativa , específico devim
, equivalente ao(?!...)
.Então significa: corresponder
>
no início da linha (^
), desde que não seja seguido (\@!
aplicado ao\(...\)
grupo) por qualquer número (*
) de caracteres (.
) seguido porRNA
seguido pelo final da linha ($
).O mesmo acontece com
\v
ery-magic , onde a maioria dos operadores estendidos não requer o\
prefixo:(aqui habilitado depois
>
que>
ele mesmo com very-magic seria um operador de limite de palavra).a resposta de @user10489 está errada porque não corresponde^>.*[^R][^N][^A]$
> RXX
, por exemplo, a nenhuma linha cujo último caractere sejaA
ou cujo penúltimo sejaN
ou antepenúltimo sejaR
ou tenha menos de 4 caracteres.a resposta de @Romyo não faz sentido algum, pois>.*[^(RNA.)][\n]
[^(RNA.)]
corresponde a qualquer caractere diferente deR
,N
,A
,.
,(
ou)
./^>.*[^R][^N][^A]$
Também pode usar grep (sem o
/
) à esquerda:/>.*[^(RNA.)][\n]
Fora dessas linhas
somente ">helloN00" e ">twm0' são selecionados
obviamente