Enquanto você receberá uma resposta aqui, você deve dar uma olhada em homem grep (pode ser esmagadora) e alguns exemplos . Por enquanto, aqui vai a resposta:
Usando grep
grep "foobar" test.txt
pesquisará linhas com a palavra foobar
no arquivo test.txt
e exibirá todas as ocorrências,
grep "foo" -v "bar" test.txt
pesquisará linhas com a palavra foo
, mas não bar
. Recebemos isso por causa do -v
switch para o qual o manpage explica:
-v, --invert-match
Invert the sense of matching, to select non-matching lines.
(-v is specified by POSIX .)
Significa simplesmente que ele irá procurar por linhas com essas palavras (aqui bar
), mas irá excluí-las na exibição final. Assim, invertendo a pesquisa .
Além disso, para contar o número de linhas que correspondem à pesquisa, use o interruptor -c
:
-c, --count
Suppress normal output; instead print a count of matching lines
for each input file. With the -v, --invert-match option (see below),
count non-matching lines. (-c is specified by POSIX .)
Como se exercitar, experimente as pesquisas grep no arquivo foobar .
A resposta
Pesquise AB+CD
ignorando nonAB
e nonCD
e conte os URLs:
grep "AB+CD" test | grep -cve "non"
em que -v "non"
simplesmente ignorará os nonAB
e nonCD
, pois ambos têm non
neles. E -c
dará contagem total para as correspondências em vez de imprimi-las. Para imprimir linhas de correspondência, ignore apenas -c
.
Você pode usá-lo para invertidos separados:
grep "AB+CD" test | grep -cve "nonAB\|nonCD"
em que \|
representa OR
e significa% da palavra nonAB
ou nonCD
exata especificada pela opção -e
.
Aconselhamos você a ver a resposta de Kamil , ler manpages (você sabe o comando) o máximo que puder, tentar com afinco enquanto procura coisas online & servir a comunidade. Sinta-se à vontade para adicionar mais detalhes para responder.