Grep search retornando uma linha diferente

7

Esta é minha pesquisa grep

 grep 'Invoker_Slark*' true_pairscore.txt

Mas retorna a linha Invoker_Slardar . Mesmo que o arquivo contenha Invoker_Slark . Por que isso?

    
por Ashwin 17.04.2014 / 23:05

1 resposta

12

O motivo é que Invoker_Slark* é considerado uma expressão regular, em que k* significa: "zero ou mais ocorrências de k"

Isso é diferente dos padrões de globalização do shell, em que * significa 0 ou mais caracteres.

Para pesquisar Invoker_Slark em qualquer lugar da linha, você precisa:

  1. grep 'Invoker_Slark' true_pairscore.txt ou

  2. grep -x '.*Invoker_Slark.*' true_pairscore.txt

Se a string de pesquisa deve estar no início da linha, então isso deve ser alterado para:

  1. grep '^Invoker_Slark' true_pairscore.txt ou

  2. grep -x 'Invoker_Slark.*' true_pairscore.txt

por 17.04.2014 / 23:09