Os desenvolvedores do Linux seguem a filosofia de criar pequenos programas que realizam uma tarefa e a fazem bem. Tome as ferramentas de processamento de texto do Linux como exemplo, elas são leves e possuem funcionalidade modular. Embora essas ferramentas de manipulação de texto sejam diferentes em complexidade e funcionalidade, elas são úteis em um ambiente onde a interface gráfica do usuário não está disponível.
O artigo aborda as melhores ferramentas do Linux para ler arquivos e usar expressões regulares para realizar operações no texto selecionado. Ele também cobre sua funcionalidade mais básica e exemplos para melhor compreensão.
1. grep
grep é um utilitário de manipulação de texto do Linux que procura uma string de caracteres ou padrões conhecidos como expressões regulares em um arquivo ou texto. A ferramenta grep pertence à família de utilitários que inclui egrep, fgrep e grep, entre os quais fgrep é o mais rápido de todos, enquanto o grep é o mais fácil.
A sintaxe geral para usar o grep é a seguinte:
grep -options string nome do arquivo
Por exemplo, para pesquisar a palavra "raiz" em o arquivo /etc/passwd:
grep root /etc/passwd
Alguns exemplos de linha de comando padrão para começar são:
Opções | Exemplo | Descrição |
---|---|---|
-c | grep -c |
Contar o número de linhas em que a string existe |
-eu | grep -i |
Execute uma pesquisa que não diferencia maiúsculas de minúsculas para a string especificada |
-o | grep -o |
Imprime apenas a string correspondente |
-eu | grep -l "senha" | Imprime nomes de arquivos no diretório atual que correspondem ao padrão |
-n | grep -n |
Imprime o número da linha ao longo da linha que contém a string especificada |
string1|string2 | grep arquivo "string1|string2" | Localiza e imprime várias strings de um arquivo |
Da mesma forma, você pode usar o ^ metacharacter com o comando grep para exibir todas as strings correspondentes que começam com determinados caracteres.
Por exemplo, o comando a seguir canaliza a saída do comando env como uma entrada para grep e exibe variáveis que começam com "HO":
env | grep ^HO
Relacionado: Exemplos práticos dos comandos Linux Grep
2. awk
awk é uma poderosa linguagem de script e uma ferramenta de manipulação de texto de linha de comando que pode executar varreduras linha por linha e comparar linhas com padrões. A sintaxe básica do comando awk é uma ação definida entre aspas simples e chaves seguidas pelo nome do arquivo.
awk '{action}' nome do arquivo
awk '{padrão; ação}' nome do arquivo
O utilitário pesquisa o arquivo usando expressões regulares e executa a função definida no parâmetro de ação. o awk executa o script em todas as linhas se você não definir um padrão, conforme mostrado abaixo:
awk '{print $1}' awk_examples.txt
...Onde $1 exibe o primeiro campo do awk_examples.txt Arquivo.
O comando a seguir executa a função de impressão no padrão fornecido substituindo o segundo campo "Mundo" com "Alice," e exibe a linha inteira ($0):
echo "Olá Mundo" | awk '{$2="Alice"; imprimir $0}'
Saída:
Olá Alice
Da mesma forma, você pode usar a função imprimir $ 0 do comando acima para emular o grep funcionalidade.
awk '/john/{print $0}' /etc/passwd
john: x: 1001:1001::/home/john:/bin/sh
3. organizar
sort é outro utilitário de linha de comando do Linux que ajuda a exibir o conteúdo do arquivo de texto especificado em um formato classificado. Por exemplo, você pode canalizar a saída do comando awk como uma entrada para o utilitário de classificação da seguinte maneira:
awk '{print $1}' awk_examples.txt | classificar > sort_text.txt
cat sort_text.txt
Saída:
Relacionado: Como classificar arquivos de texto no Linux usando classificação
4. sed
sed ou editor de fluxo recebe a entrada como um fluxo de caracteres e realiza filtragem e transformações de texto (excluir, substituir e substituir) no texto especificado.
Você pode usá-lo em um script e editar arquivos de forma não interativa. Portanto, o propósito mais básico do utilitário é a substituição de strings/caracteres. A sintaxe geral é:
arquivo sed 's/string/substitution/option'
Crie um arquivo usando frases aleatórias para praticar e entender o funcionamento deste utilitário.
Vamos substituir a ocorrência da palavra "dois" em cada linha do arquivo com "2"usando o -g sinalizador para substituição global, como segue:
sed 's/two/2/g' sed_examples.txt > sed_examples2.txt
Da mesma forma, use o -d sinalizador para excluir uma linha específica do arquivo:
sed '2d' sed_examples.txt
Você também pode substituir a string especificando um número de linha (4 s/dois/2/p) e imprimindo apenas a linha substituída da seguinte forma:
sed -n '4 s/dois/2/p' sed_examples2.txt
O -n flag no comando acima desabilita a impressão automática do fluxo de entrada para a saída. Você pode usar esta opção a seu favor para substituir a funcionalidade do utilitário grep por sed.
Por exemplo, você pode modificar o comando acima incluindo apenas um padrão regex /two/p tal que o -p sinalizador imprimirá apenas as linhas para o fluxo de saída padrão.
sed -n '/two/p' sed_examples2.txt
Relacionado: Estes 10 exemplos de sed farão de você um usuário avançado do Linux
5. cortar
O corte é outro utilitário de linha de comando que corta/extrai partes do texto de uma linha ou arquivo. Ele corta o texto com base em um campo, caractere ou posição de byte especificado e canaliza o resultado para a saída padrão.
O utilitário usa a seguinte sintaxe:
cortar Arquivo
Use o -b opção para cortar seção ou conteúdo usando um byte especificado ou um intervalo de bytes:
cut -b 1 cut_examples.txt
Use o -c sinalizador para extrair texto especificando as posições dos caracteres:
cut -c 1,3,5 cut_examples.txt
Por fim, você também pode extrair texto especificando campos com o -f opção e -d para delimitador de espaço ou campo:
cut -d " " -f 1 cut_examples.txt
Aqui está a lista de intervalos com exemplos e descrições que você pode utilizar com o personagem -c e byte -b opções:
Alcance | Exemplo | Descrição |
---|---|---|
n- | cut -c 7- nome do arquivo | Extraia o caractere do enésimo inteiro até o final da linha |
n-m | cut -b 7-15 nome do arquivo | Extrai do inteiro n-m de cada linha do arquivo de entrada |
-m | cut -c -7 nome do arquivo | Extrai linhas a partir de m até o final da linha |
Observe que você não pode definir os intervalos para extração de texto usando o campo -f opção.
Manipulando texto com comandos do Linux
O Linux oferece muitos programas e ferramentas para manipular e contornar arquivos ou texto. Aprendê-los todos pode não ser necessário, pois você pode facilmente preencher a lacuna com outro depois de ter um bom domínio sobre um, como usar sed como grep ou awk como grep, mas isso não pode ser verdade para todas as ferramentas.
Além disso, os comandos do Linux têm uma curva de aprendizado íngreme, mas uma vez que você desenvolve a habilidade, eles podem ser muito úteis e eficazes na vida de qualquer usuário do Linux, especialmente um administrador de sistema.
Cansado do aplicativo de terminal antigo e chato que vem pré-instalado no Linux? Confira esses oito aplicativos de terminal que aprimorarão seu fluxo de trabalho.
Leia a seguir
- Linux
- Comandos Linux
Rumaisa é redatora freelancer na MUO. Ela já desempenhou muitos cargos, de matemática a entusiasta de segurança da informação, e agora está trabalhando como analista de SOC. Seus interesses incluem ler e escrever sobre novas tecnologias, distribuições Linux e qualquer coisa relacionada à Segurança da Informação.
Assine a nossa newsletter
Junte-se à nossa newsletter para dicas de tecnologia, análises, e-books gratuitos e ofertas exclusivas!
Clique aqui para assinar