Para um administrador do 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 inúmeros métodos para encontrar textos em arquivos. É possível usar ferramentas internas e aplicativos de terceiros. Confira como encontrar textos em arquivos no Linux.
Encontrando texto em arquivos
Dependendo do número de arquivos em que você precisa executar uma pesquisa, há duas maneiras de executar 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 o Grep. Grep vem pré-instalado em qualquer distro 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 “Procure globalmente por uma expressão regular e impressão de linhas de correspondência.”Está disponível em qualquer distro moderna do Linux.
Grep é uma ferramenta de linha de comando. Sua estrutura de comando é a seguinte.
$ grep
Como o nome de Grep sugere, o padrão a ser descrito é descrito usando uma expressão regular. A expressão regular é um tipo especial de string que descreve um padrão para combinar, localizar e gerenciar. Para saber mais sobre o Grep e a expressão regular, confira o Grep e o egrep com expressão regular.
Para fins de demonstração, pegue um arquivo de texto de amostra. Neste exemplo, faça o download da licença pública geral GNU V3.0 arquivo de texto.
Pesquisa básica
A maneira fundamental de usar o Grep é procurar uma string básica.
Dê uma olhada no seguinte comando grep. Ele procurará a palavra "GNU" no arquivo de texto.
$ grep "gnu" gpl-3.0.TXT
Para mostrar o número da linha, use a bandeira "-n".
$ grep -n "gnu" gpl -3.0.TXT
Para realizar uma pesquisa insensível ao caso usando Grep, use a bandeira "-i".
$ grep -ni "gnu" gpl -3.0.TXT
Você pode não querer ver as correspondências de pesquisa, mas apenas o nome do arquivo onde a partida aconteceu em algumas situações. Para imprimir apenas o nome do arquivo, use a bandeira "-l". Aqui, o asterisco indica para usar todos os arquivos de texto no diretório atual.
$ grep -l "gnu" *
Também podemos colocar a saída de outros comandos para Grep.
$ CAT GPL-3.0.txt | grep -n "gnu"
Expressão regular
Regex oferece uma maneira inteligente de ajustar a pesquisa. Tem suas próprias regras. No entanto, diferentes aplicações e linguagens de programação implementam expressão regular de maneira diferente. Aqui estão alguns exemplos que você pode usar com grep.
Para definir que a string pode ser encontrada no início de uma linha, use o símbolo caret (^).
$ grep -n “^gnu” GPL -3.0.TXT
Para definir que a string pode ser encontrada no final de uma linha, use o sinal do dólar ($).
$ grep -n “to $” GPL -3.0.TXT
Para descrever que pode haver qualquer personagem em um determinado local do padrão, use o caractere do período (.). Por exemplo, a expressão “g.U "é válido se houver algum personagem entre" g "e" u ".
$ grep -n “g.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 partida é válida para "dois" e "também" apenas.
$ grep -n “t [wo] 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 expressão regular estendida com grep, você deve usar a bandeira “-e”.
$ grep -ne
Para procurar duas cordas diferentes, use os operadores (|).
$ grep -ne “gnu | general | licença” GPL -3.0.TXT
Encontrando texto em arquivos
Agora vem a parte principal. Em vez de dizer manualmente ao Grep o arquivo para executar a pesquisa, Grep pode fazê -lo automaticamente. No comando a seguir, Grep usará todos os arquivos de texto disponíveis no diretório atual para pesquisar o padrão.
$ grep*
Se você deseja grep para executar a pesquisa em um diretório diferente, você deve especificar o local.
$ grep
Se houver pastas, Grep não as explora por padrão. Para dizer a Grep para pesquisar recursivamente, use a bandeira "-r".
$ grep -nr
GUI GUI
Se você preferir trabalhar com a GUI, mas ainda deseja aproveitar os recursos de Grep, confira o SearchMonkey. É uma solução front-end para Grep. O pacote está disponível em quase todas as principais distribuições Linux.
Encontre texto em arquivos usando Nano
GNU Nano é um editor de texto simples e poderoso que vem com qualquer distro Linux. Possui recursos internos para procurar texto em um arquivo de texto.
Observe que, neste método, você precisa abrir o arquivo de texto e pesquisar manualmente. É possível se houver apenas alguns arquivos de texto para trabalhar. Se houver mais, o uso de grep é a escolha mais ideal.
Abra o arquivo de texto em Nano.
$ nano
Para procurar uma correspondência de string, pressione “Ctrl + W”. Depois de digitar a string a ser pesquisada, pressione "Enter".
Encontre o texto em arquivos usando o vim
Vim é um editor de texto bem conhecido e de renome. É o equivalente da linha de comando de um editor de texto moderno. O VIM vem com vários recursos avançados, como plugins, macros, conclusão automática, filtros, etc.
Semelhante a Nano, o VIM trabalha com um único arquivo de cada vez. Se você tem vários arquivos de texto, o uso de Grep é o caminho mais ideal.
Para pesquisar em um arquivo de texto, primeiro, abra -o em vim.
$ vim
Digite o seguinte comando vim e pressione "Enter".
$:/
Encontre texto em arquivos usando o Gnome Text Editor
O editor de texto Gnome é o editor de texto que vem com o Gnome Desktop. É um editor de texto simplista com todos os recursos básicos que você esperaria. É uma boa alternativa aos editores de texto da linha de comando.
Semelhante a Nano e Vim, a mesma cautela se aplica a este 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 trazer à tona a barra de pesquisa.
Encontre o texto em arquivos usando o código VS
O Código do Visual Studio é um poderoso editor de texto com toneladas de recursos. É otimizado para os programadores serem usados como se fosse um IDE de pleno direito. Está disponível em quase todas as principais distribuições Linux.
Instale o pacote Snap Code Code Code.
$ sudo snap install code -clássico
Abra o arquivo de texto no código VS. Pressione “Ctrl + F” para começar a pesquisar.
Pensamentos finais
Existem inúmeras maneiras de pesquisar texto em arquivos. É uma tarefa fácil de dominar. É fortemente recomendado dominar o comando Grep porque oferece o maior valor em termos de eficiência e facilidade de uso.
Se você preferir a GUI, existem inúmeros editores de texto para escolher. Qualquer editor de texto moderno fornecerá a opção de pesquisa de texto.
Computação feliz!