Procurar por uma palavra-chave e obter sua ocorrência de contagem

0

Eu quero descobrir a ocorrência de um grupo de palavras-chave por nome de arquivo em um diretório.

Exemplo:
Palavra-chave - TEST (significa TEST1, TEST2, etc. pode ser um resultado válido)
Arquivos - a.txt, b.txt etc. (dentro de um diretório .. / tmp).

A saída será a seguinte.

a.txt - 4
b.txt - 5
c.txt - 0

Eu tentei com grep -o "TEST" a.txt e isso dá apenas TEST e suas ocorrências; como se um arquivo tivesse 3 ocorrências (como TEST1, TEST_XXX, TESTXYES) a saída será

TEST
TEST
TEST

OR se a pesquisa de vários arquivos não for possível, então OUTPUT deverá fornecer toda a cadeia de caracteres de início semelhante TEST; por exemplo,

TEST
TEST_1
TEST_2
TEST4

Eu também tentei o seguinte.

grep -c "TEST" a.txt

mas isso dá apenas a contagem; ele não dá o que foi todo o texto começando com TEST.

    
por user249634 14.11.2018 / 08:04

1 resposta

0

O grep -c imprime o número de linhas , para que você não acerte o resultado combinado com a opção -o . Eu enviaria a saída de grep -o para uniq -c :

$ echo 'test1 test2 test3' >/tmp/file1
$ echo 'test1 test2 test3 test4' >/tmp/file2
$ grep -o test /tmp/file* | uniq -c
  3 /tmp/file1:test
  4 /tmp/file2:test

Você pode canalizá-lo ainda mais para modificar a saída com algumas ferramentas de processamento de texto.

    
por 14.11.2018 / 08:21