![Como pesquisar um arquivo de texto por um número inteiro específico](https://rvso.com/image/89165/Como%20pesquisar%20um%20arquivo%20de%20texto%20por%20um%20n%C3%BAmero%20inteiro%20espec%C3%ADfico.png)
Existe uma maneira simples de pesquisar em um arquivo de texto (código-fonte) todas as instâncias de um número inteiro específico. Isso não deve ser acionado em números maiores que incluam o número inteiro como uma substring, mas não pode simplesmente excluir essas linhas, pois elas podem conter ambos os casos:
procurando por '6'...
int a=6; // found
int b=16; // not found (despite the '6' in '16')
int c=6, d=16; // found
Estou realmente procurando uma abordagem de linha de comando para isso, mas também estou curioso para saber se existe umSoftware LivreEditor do tipo GUI que fará isso.
Responder1
grep -E '\b6\b'
\b
é um "limite de palavra"
Editar: depois de apontar @nobar na direção certa, ele encontrou/apontou a opção de atalho -w
(word-regexp) na página de manual, o que simplifica o acima para:
grep -w 6
Se usado muito, você poderia usar uma função semelhante a
wgrp(){ grep -w "$1" "$2"; }
Nota (para @glenn-jackman): Se você não citar "$2"
aqui, poderá usar a função como filtro de pipeline. Mas sim, não funcionará com nomes de arquivos com espaços.
Depois de ler mais uma ótima resposta de @Gilles, proponho agora
igrp(){ grep -E "(^|[^0-9])$1($|[^0-9])" "$2"; }
Responder2
Você pode pesquisar um número inteiro específico com uma expressão regular. Procure os dígitos precedidos pelo início dos dados ou por um caractere que não seja um dígito e, da mesma forma, após os dígitos.
grep -e '^6$' -e '^6[^0-9]' -e '[^0-9]6$' -e '[^0-9]6[^0-9]' # BRE syntax
grep -E '(^|[^0-9])6($|[^0-9])' # ERE syntax
Uma pesquisa de palavras inteiras, conforme sugerido em outras respostas, perde resultados como foo6bar
. (Isso pode não ser um problema para o seu caso de uso, mas foi o que você perguntou.)
Qualquer editor ou visualizador de texto meio sério (por exemplo less
) possui pesquisa de expressão regular. Verifique sua documentação para ver qual sintaxe regex ela usa.
Responder3
Acho que essa não era uma necessidade tão obscura. Meu editor de programação regular,plumasuporta isso através da caixa de diálogo "localizar" usando a opção "Corresponder apenas à palavra inteira". Tenho certeza de que muitos outros editores também têm isso - embora no momento aparentemente não seja o ancestral de Plumagedit.