Visão Geral
No ambiente Linux, quando é necessário extrair rapidamente apenas colunas específicas de arquivos de log volumosos ou dados em formato CSV, o comando cut é a ferramenta mais leve e poderosa. Veremos desde a separação de campos baseada em delimitadores até o fatiamento por bytes e caracteres de largura fixa, abordando técnicas essenciais prontas para aplicação prática.
Extração de Dados de Contas de Sistema e CSV Usando Delimitador (-d) e Campos (-f)
Execute o comando mkdir -p ~/cut_demo && cd ~/cut_demo para criar um diretório dedicado para a prática do comando cut e entrar nele.

Crie um arquivo de dados de teste de usuários separado por vírgulas (,) escrevendo o arquivo users.csv com o comando echo.

O comando cut é uma ferramenta que extrai apenas colunas (campos), bytes ou intervalos de caracteres específicos a partir de arquivos de texto ou saídas de comandos com base em um delimitador definido.
Com a opção -d, defina a vírgula (,) como delimitador e, com a opção -f, selecione o segundo e o quarto campos para exibir com clareza apenas o nome e o departamento a partir do arquivo users.csv.
⚙️ [Principais Opções]
-d : Especifica diretamente o delimitador a ser usado na divisão dos campos (o padrão é o caractere de tabulação).-f : Especifica o número ou intervalo dos campos (colunas) a serem extraídos.-c : Fatia os dados com base na posição por caracteres em vez de bytes.-b : Fatia os dados com base na posição por bytes.--complement : Inverte a seleção, exibindo tudo exceto os campos ou intervalos de caracteres especificados.-s : Não exibe linhas que não contenham o delimitador.--output-delimiter : Altera a string do delimitador de campos a ser utilizada na exibição do resultado.

No arquivo /etc/passwd, que armazena informações de contas do sistema Linux, extraia apenas o nome de usuário (campo 1) e o caminho do shell padrão (campo 7) usando os dois-pontos (:) como delimitador e visualize apenas as 5 primeiras linhas com o comando head.
Dessa forma, combinando o comando cut com pipes (|), torna-se simples monitorar apenas as colunas essenciais a partir de arquivos volumosos de configuração do sistema.

Manipulando Logs de Largura Fixa com Fatiamento por Bytes (-b) e Caracteres (-c)
Para continuar com a prática, execute o comando cd ~/cut_demo para navegar até o diretório de trabalho criado anteriormente.

Para praticar o fatiamento por caracteres de largura fixa, crie o arquivo de log de exemplo service.log com data, hora e nível de log gravados em formato padronizado.
![echo -e ‘2026-10-07 14:00:01 [INFO] Service started\n2026-10-07 14:00:05 [WARN] High memory usage\n2026-10-07 14:00:12 [ERROR] Connection timed out’ > service.log](/ubuntu/20261007_145511_102/captures/s02_c02_echo_-e__2026-10-07_14_00_01__INFO__Service_starte.png)
Especifique a opção -c1-10 no comando cut para recortar do 1º ao 10º caractere de cada linha, extraindo com clareza apenas a data no formato ano-mês-dia.

Use a opção -c12-19 para isolar e exibir com precisão apenas o carimbo de data/hora no formato hora:minuto:segundo, localizado do 12º ao 19º caractere no arquivo de log.

Ao omitir a posição final, como em -c22-, é possível fatiar de uma vez todo o texto restante a partir do 22º caractere até o final de cada linha, extraindo a área da mensagem.

Alterando o Delimitador de Saída (–output-delimiter) e Excluindo Campos Específicos (–complement)
Execute o comando cd ~/cut_demo para entrar no diretório onde estão os arquivos de teste criados anteriormente.

Com a opção --output-delimiter, é possível definir uma string personalizada para separar os campos extraídos no resultado em vez do delimitador padrão.
No arquivo users.csv, separado por vírgulas (,), extraia os campos 2 e 3 e insira espaços com o caractere pipe (|) entre eles para melhorar a legibilidade.

Ao especificar a opção --complement, todos os campos são exibidos de forma invertida, exceto aqueles que foram selecionados.
Usando-a junto com a opção -f3, apenas o terceiro campo (informações de função) é removido, mantendo e exibindo intactos todos os demais campos.

Integração em Pipelines Práticos: Análise Estatística de IPs Conectados com cut, sort e uniq
Para continuar o exercício, execute o comando cd ~/cut_demo para acessar o diretório reservado criado anteriormente.

Para simular a análise de requisições de clientes em um servidor web, crie o arquivo de log de amostra access.log contendo IPs de conexão e detalhes de requisições HTTP separados por espaços.
![echo -e ‘192.168.1.10 - - [07/Oct/2026] “GET /index.html” 200\n192.168.1.15 - - [07/Oct/2026] “POST /login” 401\n192.168.1.10 - - [07/Oct/2026] “GET /dashboard” 200\n10.0.0.5 - - [07/Oct/2026] “GET /api/v1” 200\n192.168.1.10 - - [07/Oct/2026] “POST /logout” 200’ > access.log](/ubuntu/20261007_145511_102/captures/s04_c02_echo_-e__192_168_1_10_-_-__07_Oct_2026___GET__inde.png)
Utilize a opção -d' ' -f1 do comando cut para isolar apenas o endereço IP do cliente, que corresponde à primeira coluna separada por espaço.
Em seguida, ordene os dados com sort, conte as repetições com uniq -c e conecte novamente com sort -nr para obter um ranking estatístico ordenado decrescentemente pelos IPs com maior frequência de conexão.

Vimos até aqui como utilizar o comando cut para extrair de forma limpa apenas as colunas desejadas a partir de logs e dados CSV.
Aproveite as opções de delimitadores e campos para tornar suas tarefas diárias de processamento de texto e manipulação de dados ainda mais eficientes.