Como encontrar texto em arquivos no Linux

How Find Text Files Linux



Para um administrador de sistema, trabalhar com arquivos de texto é um fenômeno comum. Talvez precise encontrar uma seção específica de pilhas de arquivos de log para solucionar algo? Ou precisa encontrar o documento que contém informações essenciais rapidamente?

No caso do Linux, existem vários métodos para localizar textos em arquivos. É possível usar ferramentas integradas e aplicativos de terceiros. Veja como encontrar textos em arquivos no Linux.







Encontrar texto em arquivos

Dependendo da quantidade de arquivos que você deseja realizar uma pesquisa, existem duas maneiras de fazer a pesquisa de texto: automatizada ou manual. Se você tiver que trabalhar com alguns arquivos de texto, a pesquisa manual é mais adequada. No entanto, se houver centenas de arquivos de texto, a pesquisa automatizada é a mais eficiente.



Para pesquisa automatizada, usaremos grep. Grep vem pré-instalado em qualquer distribuição Linux. Quanto à pesquisa manual, qualquer editor de texto moderno fará o trabalho.



Encontre texto em arquivos usando grep

No Linux, grep é a ferramenta padrão para pesquisar textos. Seu nome é derivado do comando ed g / re / p que significa pesquisar globalmente uma expressão regular e imprimir linhas correspondentes. Ele está disponível em qualquer distro Linux moderna.





Grep é uma ferramenta de linha de comando. Sua estrutura de comando é a seguinte.

$pegada <opção> <expressão regular> <caminho de arquivo>

Como o nome de grep sugere, o padrão a ser pesquisado é descrito usando uma expressão regular. A expressão regular é um tipo especial de string que descreve um padrão para corresponder, localizar e gerenciar. Para saber mais sobre grep e expressão regular, verifique usando grep e egrep com expressão regular .



Para fins de demonstração, pegue um arquivo de texto de amostra. Neste exemplo, baixe o Arquivo de texto GNU General Public License v3.0 .

Pesquisa básica

A maneira fundamental de usar o grep é pesquisar uma string básica.

Dê uma olhada no seguinte comando grep. Ele pesquisará a palavra GNU no arquivo de texto.

$pegada 'GNU'gpl-3,0.TXT

Para mostrar o número da linha, use o sinalizador -n.

$pegada -nGNU gpl-3,0.TXT

Para realizar uma pesquisa que não diferencia maiúsculas de minúsculas usando grep, use o sinalizador -i.

$pegada -nignu gpl-3,0.TXT

Você pode não querer ver as correspondências da pesquisa, mas apenas o nome do arquivo onde a correspondência aconteceu em algumas situações. Para imprimir apenas o nome do arquivo, use o sinalizador -l. Aqui, o asterisco indica o uso de todos os arquivos de texto no diretório atual.

$pegada -agnu*

Também podemos canalizar a saída de outros comandos para grep.

$gatogpl-3,0.TXT| pegada -nGNU

Expressão regular

A Regex oferece uma maneira inteligente de ajustar a pesquisa. Ele tem suas próprias regras. No entanto, diferentes aplicativos e linguagens de programação implementam expressões regulares de maneira diferente. Aqui estão alguns exemplos que você pode usar com grep.

Para definir que a string deve ser encontrada no início de uma linha, use o símbolo circunflexo (^).

$pegada -n^ GNU gpl-3,0.TXT

Para definir que a string deve ser encontrada no final de uma linha, use o cifrão ($).

$pegada -npara $ gpl-3,0.TXT

Para descrever que pode haver qualquer caractere em um determinado local do padrão, use o caractere ponto (.). Por exemplo, a expressão G.U é válida se houver algum caractere entre G e U.

$pegada -nG.U gpl-3,0.TXT

Para descrever que pode haver um subconjunto de caracteres em um local específico do padrão, use os colchetes ([]). Por exemplo, a expressão t [wo] o diz que a correspondência é válida para dois e apenas.

$pegada -nt[Onde]o gpl-3,0.TXT

Expressão regular estendida

Como o nome sugere, uma expressão regular estendida pode fazer coisas mais complexas do que expressões regulares básicas. Para usar a expressão regular estendida com grep, você deve usar o sinalizador -E.

$pegada -nascido <extended_regex> <Arquivo>

Para pesquisar duas strings diferentes, use os operadores OR (|).

$pegada -nascidoGNU|em geral|Licença gpl-3,0.TXT

Encontrar texto em arquivos

Agora vem a parte principal. Em vez de dizer manualmente ao grep para que o arquivo execute a pesquisa, o grep pode fazer isso automaticamente. No comando a seguir, grep usará todos os arquivos de texto disponíveis no diretório atual para pesquisar o padrão.

$pegada <regex> *

Se você deseja executar o grep para realizar a pesquisa em um diretório diferente, deverá especificar a localização.

$pegada <regex> <caminho de diretório>

Se houver pastas, o grep não as explorará por padrão. Para dizer ao grep para pesquisar recursivamente, use o sinalizador -R.

$pegada -nR <regex> <caminho de diretório>

Grip GUI

Se você preferir trabalhar com GUI, mas ainda quiser aproveitar os recursos do grep, verifique o searchmonkey. É uma solução de front-end para grep. O pacote está disponível em quase todas as principais distros Linux.

Encontre texto em arquivos usando o nano

GNU Nano é um editor de texto simples e poderoso que vem com qualquer distribuição Linux. Possui recursos integrados para pesquisar texto em um arquivo de texto.

Observe que, neste método, você deve abrir o arquivo de texto e pesquisar manualmente. É possível se houver apenas um punhado de arquivos de texto para trabalhar. Se houver mais, usar o grep é a escolha ideal.

Abra o arquivo de texto no nano.

$nano <caminho de arquivo>

Para pesquisar uma correspondência de string, pressione Ctrl + W. Depois de digitar a string a ser pesquisada, pressione Enter.

Encontre texto em arquivos usando o Vim

O Vim é um editor de texto conhecido e de renome. É o equivalente em linha de comando de um editor de texto moderno. O Vim vem com vários recursos avançados, como plug-ins, macros, preenchimento automático, filtros, etc.

Semelhante ao nano, o Vim funciona com um único arquivo por vez. Se você tiver vários arquivos de texto, usar o grep é a melhor maneira de fazer.

Para pesquisar em um arquivo de texto, primeiro abra-o no Vim.

$vim <caminho de arquivo>

Digite o seguinte comando do Vim e pressione Enter.

$:/<termo de pesquisa>

Encontre texto em arquivos usando o Editor de Texto GNOME

O GNOME Text Editor é o editor de texto que vem com a área de trabalho GNOME. É um editor de texto simplista com todos os recursos básicos que você espera. É uma boa alternativa aos editores de texto de linha de comando.

Semelhante ao nano e ao vim, o mesmo cuidado se aplica a esse método. Se o número de arquivos de texto for grande, é melhor você ficar com grep.

Abra o arquivo de texto no Editor de Texto. Pressione Ctrl + F para abrir a barra de pesquisa.

Encontre texto em arquivos usando VS Code

O Visual Studio Code é um editor de texto poderoso com muitos recursos. Ele é otimizado para programadores para ser usado como se fosse um IDE completo. Ele está disponível em quase todas as principais distros Linux.

Instale o pacote de snap do Visual Studio Code.

$sudofotoinstalarcódigo--clássico

Abra o arquivo de texto no VS Code. Pressione Ctrl + F para iniciar a pesquisa.

Pensamentos finais

Existem várias maneiras de pesquisar texto em arquivos. É uma tarefa fácil de dominar. É altamente recomendável dominar o comando grep porque ele oferece o maior valor em termos de eficiência e facilidade de uso.

Se você preferir GUI, existem vários editores de texto para escolher. Qualquer editor de texto moderno fornecerá a opção de pesquisa de texto.

Boa computação!