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

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:
-Aimprime “$” no final de cada linha e exibe caracteres não imprimíveis usando notação caret.-nnumera todas as linhas.-bnumera linhas que não estão em branco.-sreduz 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
2. sort
Como seu nome sugere, o sort ordena o conteúdo de arquivos alfabeticamente e numericamente.

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

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.

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 -5ou-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.

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.

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.

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
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
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 filenamePara modificar o arquivo original em vez disso, você pode usar a flag -i.

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

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
Dividindo por bytes
split -b bytes input_file output_prefix
Dividindo para um número específico de arquivos
split -n num_files input_file output_prefix12. tac
Tac, que é cat ao contrário, faz exatamente isso: exibe arquivos com as linhas em ordem inversa.

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 SET2Por exemplo, para substituir caracteres minúsculos por seus equivalentes em maiúsculas, você pode usar o seguinte:
tr "a-z" "A-Z"
Para deletar um conjunto de caracteres, use a flag -d.
tr -d SETPara deletar o complemento de um conjunto de caracteres (ou seja, tudo menos o conjunto), use -dc.
tr -dc SETConclusã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.