[ad_1]
grep
é um utilitário de pesquisa de linha de comando para Linux que imprimirá linhas em arquivos que correspondem a um padrão ou expressão regular. A correspondência reversa também é útil, pois filtrará todas as linhas em um arquivo que contém a string fornecida.
Correspondência negativa com grep
Para usar correspondência negativa em grep
você deve executar o comando com o -v
qualquer --invert-match
bandeiras Isso imprimirá apenas as linhas que não correspondem ao padrão fornecido.
grep -v "bar" file
No entanto, note que desde grep
não corresponde a nada, não há como usar o -o
sinalizador para imprimir “somente correspondências”, já que nada correspondeu tecnicamente. grep
você pode corresponder várias vezes por linha, mas, neste caso, não importa se houver várias correspondências. Qualquer correspondência única causará grep
para pular a fila.
Isso também funciona com expressões regulares (regex) e imprimirá todas as linhas registradas para corresponder à expressão regular.
grep -v "foo ba[rz]" file
Embora você possa escrever expressões regulares que façam correspondências negativas, geralmente é mais fácil reverter a correspondência dessa maneira.
Alternativamente, se você preferir usar awk
você pode usar o modificador de exclamação para reverter expressões regulares.
awk '!/bar/' file
Nomes de arquivos correspondentes negativos
as minúsculas -l
a bandeira causará grep
para imprimir os nomes de arquivo que contêm correspondências em vez do conteúdo correspondente real. Isso pode ser útil ao verificar uma lista de arquivos, mas da mesma forma, também é útil reverter isso às vezes.
o inverso de -l
é a variante maiúscula, -L
que faz o contrário:
grep -L "bar" ./*.txt
Certifique-se de não usar o -v
bandeira com -L
para reverter a correspondência antes de imprimir os arquivos sem a correspondência, ou você se deparará com uma situação de “opostos duplos” em que a correspondência é revertida duas vezes e não tem o efeito desejado.
[ad_2]