Grep: corresponde a uma linguagem de programação

0

Eu tenho um diretório com muitos arquivos. Os arquivos contêm resumos de pessoas que descrevem sua experiência usando uma linguagem de programação.

O problema surge quando quero corresponder a uma linguagem de programação que tenha apenas uma letra como C .

Para os outros, não tenho problema.

grep C++
grep Ada
grep Pascal
grep Scheme

Como posso fazer um grep para combinar C e não confundi-lo com outras palavras apresentadas nos arquivos?

    
por Andres ZW 09.05.2018 / 17:05

3 respostas

1

Se tudo o que você quer fazer é corresponder à letra única C , então você deve ser capaz de fazer isso com grep com bastante facilidade. Adicione o sinalizador -i para correspondência que não diferencia maiúsculas de minúsculas.

grep -w C *
    
por 09.05.2018 / 17:20
0

Você pode usar:

grep -- "\<C\>" your_file

Isso também corresponderia a I like C, because ... .

    
por 09.05.2018 / 17:35
0

Em geral, sua solução deve ser grep -w C ou grep -P '\bC\b' , como roaima sugerido.

Para ignorar casos especiais como C++ , você sempre pode usar uma análise negativa:

grep -P "\bC\b(?!\+)" file

(?!\+) torna grep ignorar a correspondência se o primeiro caractere seguinte após C for + .
Se houver casos mais específicos, você pode simplesmente editar essa parte do código para combiná-los também.

    
por 09.05.2018 / 17:38

Tags