Treze Ferramentas Úteis para Trabalhar com Texto na Linha de Comando

Ferramenta de Texto Linha de Comando Linux Destaque

Distribuições GNU/Linux incluem uma infinidade de programas para manipulação de texto, a maioria fornecida pelas utilitários básicos do GNU. Há uma certa curva de aprendizado, mas essas utilidades podem provar ser muito úteis e eficientes quando usadas corretamente.

Aqui estão treze poderosas ferramentas de manipulação de texto que todo usuário da linha de comando deve conhecer.

1. cat

O cat foi projetado para cat enar arquivos, mas é mais frequentemente usado para exibir um único arquivo. Sem argumentos, cat lê a entrada padrão até que Ctrl + D seja pressionado (do terminal ou de outra saída de programa se usando um pipe). A entrada padrão também pode ser explicitamente especificada com um -.

Cat possui várias opções úteis, notavelmente:

  • -A imprime “$” no final de cada linha e exibe caracteres não imprimíveis usando notação caret.
  • -n numera todas as linhas.
  • -b numera linhas que não estão em branco.
  • -s reduz uma série de linhas em branco a uma única linha em branco.

No exemplo a seguir, estamos concatenando e numerando o conteúdo de file1, entrada padrão e file3.

cat -n file1 - file3

Ferramentas de Texto Linux Cat

2. sort

Como seu nome sugere, o sort ordena o conteúdo de arquivos alfabeticamente e numericamente.

Ferramentas de Texto Linux Sort

3. uniq

O Uniq pega um arquivo ordenado e remove linhas duplicadas. É frequentemente encadeado com sort em um único comando.

Ferramentas de Texto Linux Uniq

4. comm

Comm é usado para comparar dois arquivos ordenados, linha por linha. Ele produz três colunas: as duas primeiras colunas contêm linhas exclusivas do primeiro e segundo arquivo, respectivamente, e a terceira exibe aquelas encontradas em ambos os arquivos.

Ferramentas de Texto Linux Comm

5. cut

O Cut é usado para recuperar seções específicas de linhas, com base em caracteres, campos ou bytes. Ele pode ler de um arquivo ou da entrada padrão se nenhum arquivo for especificado.

Corte por posição de caractere

A opção -c especifica uma única posição de caractere ou um ou mais intervalos de caracteres.

Por exemplo:

  • -c 3: o 3º caractere.
  • -c 3-5: do 3º ao 5º caractere.
  • -c -5 ou -c 1-5: do 1º ao 5º caractere.
  • -c 5-: do 5º caractere até o final da linha.
  • -c 3,5-7: o 3º e do 5º ao 7º caractere.

Ferramentas de Texto Linux Cut Char

Corte por campo

Os campos são separados por um delimitador que consiste em um único caractere, que é especificado com a opção -d. A opção -f seleciona uma posição de campo ou um ou mais intervalos de campos usando o mesmo formato acima.

Ferramentas de Texto Linux Cut Field

6. dos2unix

GNU/Linux e Unix normalmente terminam linhas de texto com um avanço de linha (LF), enquanto Windows usa retorno de carro e avanço de linha (CRLF). Problemas de compatibilidade podem surgir ao lidar com texto CRLF no Linux, que é onde o dos2unix entra. Ele converte terminais CRLF para LF.

No exemplo a seguir, o comando file é usado para verificar o formato do texto antes e depois de usar dos2unix.

Ferramentas de Texto Linux Dos2unix

7. fold

Para facilitar a leitura e manipulação de longas linhas de texto, você pode usar o fold, que envolve linhas até uma largura especificada.

O Fold corresponde estritamente à largura especificada por padrão, quebrando palavras onde necessário.

fold -w30 longline.txt

Ferramentas de Texto Linux Fold

Se quebrar palavras não for desejável, você pode usar a opção -s para quebrar em espaços.

fold -w30 -s longline.txt

Ferramentas de Texto Linux Fold Spaces

8. iconv

Esta ferramenta converte texto de uma codificação para outra, o que é muito útil ao lidar com codificações incomuns.

iconv -f input_encoding -t output_encoding -o output_file input_file
  • “input_encoding” é a codificação de onde você está convertendo.
  • “output_encoding” é a codificação para onde você está convertendo.
  • “output_file” é o nome do arquivo que o iconv irá salvar.
  • “input_file” é o nome do arquivo que o iconv irá ler.

Nota: você pode listar as codificações disponíveis com iconv -l

9. sed

O sed é um poderoso e flexível s tream ed itor, mais comumente usado para encontrar e substituir strings com a seguinte sintaxe.

O comando a seguir lerá do arquivo especificado (ou da entrada padrão), substituindo as partes do texto que correspondem ao padrão da expressão regular pela string de substituição e saindo o resultado para o terminal.

sed s/pattern/replacement/g filename

Para modificar o arquivo original em vez disso, você pode usar a flag -i.

Ferramentas de Texto Linux Sed

10. wc

A utilidade wc imprime o número de bytes, caracteres, palavras ou linhas em um arquivo.

Ferramentas de Texto Linux Wc

11. split

Você pode usar split para dividir um arquivo em arquivos menores, por número de linhas, por tamanho, ou para um número específico de arquivos.

Dividindo por número de linhas

split -l num_lines input_file output_prefix

Ferramentas de Texto Linux Split Lines

Dividindo por bytes

split -b bytes input_file output_prefix

Ferramentas de Texto Linux Split Bytes

Dividindo para um número específico de arquivos

split -n num_files input_file output_prefix

12. tac

Tac, que é cat ao contrário, faz exatamente isso: exibe arquivos com as linhas em ordem inversa.

Ferramentas de Texto Linux Tac

13. tr

A ferramenta tr é usada para traduzir ou deletar conjuntos de caracteres.

Um conjunto de caracteres é geralmente uma string ou intervalos de caracteres. Por exemplo:

  • “A-Z”: todas as letras maiúsculas
  • “a-z0-9”: letras minúsculas e dígitos
  • “\n[:punct:]”: caracteres de nova linha e pontuação

Consulte a página do manual do tr para mais detalhes.

Para traduzir um conjunto para outro, use a seguinte sintaxe:

tr SET1 SET2

Por exemplo, para substituir caracteres minúsculos por seus equivalentes em maiúsculas, você pode usar o seguinte:

tr "a-z" "A-Z"

Ferramentas de Texto Linux Tr

Para deletar um conjunto de caracteres, use a flag -d.

tr -d SET

Para deletar o complemento de um conjunto de caracteres (ou seja, tudo menos o conjunto), use -dc.

tr -dc SET

Conclusão

Há muito a aprender quando se trata de linha de comando do Linux. Esperamos que os comandos acima possam ajudá-lo a lidar melhor com texto na linha de comando.