cut
100%

Text-Fu · Lição 6

cut

Aprenda a selecionar posições de caracteres ou campos delimitados de cada linha com cut.

O comando cut seleciona posições de caracteres ou campos especificados em cada linha da entrada. Ele funciona melhor com textos de estrutura consistente cujos delimitadores e posições de campos são conhecidos.

Crie um pequeno arquivo separado por tabulações para os exemplos. printf interpreta \t como uma tabulação literal e \n como uma nova linha:

$ printf 'name\trole\nalice\tadmin\nbob\tviewer\n' > team.tsv

Seleção de Posições de Caracteres

Use -c LIST para selecionar posições de cada linha. As posições começam em 1:

$ cut -c 1 team.tsv
n
a
b

A lista pode conter posições individuais e intervalos:

$ cut -c 1-4 team.tsv
name
alic
bob
$ cut -c 1,3 team.tsv
nm
ai
bb

Espaços, tabulações e sinais de pontuação também ocupam posições. cut processa cada linha independentemente.

Qual comando mostra o primeiro caractere de cada linha de names.txt?

Seleção de Campos Delimitados por Tabulação

Use -f LIST para selecionar campos. O delimitador padrão é uma tabulação:

$ cut -f 2 team.tsv
role
admin
viewer

Assim como na seleção de caracteres, uma lista pode incluir valores como 1, 1,3, 2-4, -3 ou 2-.

Qual comando mostra o segundo campo delimitado por tabulação de cada linha de team.tsv?

Escolha de um Delimitador Personalizado

Use -d CHARACTER com -f quando os campos utilizarem outro delimitador. Este exemplo cria dados separados por ponto e vírgula:

$ printf 'alice;admin\nbob;viewer\n' > team.txt
$ cut -d ';' -f 1 team.txt
alice
bob

O delimitador dessa forma é um único caractere. Coloque ; entre aspas, pois um ponto e vírgula sem aspas possui significado de controle no shell.

Qual comando mostra o segundo campo delimitado por ponto e vírgula de team.txt?

Tratamento de Linhas sem o Delimitador

No modo de campos, cut normalmente mostra uma linha inalterada quando ela não contém o delimitador. Acrescente -s para suprimir essas linhas:

$ printf 'alice;admin\nheader\nbob;viewer\n' | cut -s -d ';' -f 2
admin
viewer

Isso não valida um arquivo CSV genérico. CSV pode conter delimitadores entre aspas, novas linhas incorporadas e regras de escape que uma divisão por um único caractere não compreende; use uma ferramenta compatível com CSV para esses dados.

O que -s faz em cut -d ':' -f 1?

Leitura de stdin

Quando nenhum arquivo é indicado, ou quando - é usado como operando de entrada, cut lê stdin. Isso o torna uma etapa natural de um pipeline:

$ printf 'red:1\nblue:2\n' | cut -d ':' -f 1
red
blue

Em generate-data | cut -d ':' -f 1, de onde cut lê sua entrada?

Para praticar a seleção por posição e campo, experimente estes laboratórios:

  1. Comando cut do Linux: Recorte de Texto — Este laboratório oferece uma introdução prática e direta ao comando cut, permitindo que você pratique a extração de colunas ou campos específicos de arquivos de texto, exatamente como apresentado na lição.
  2. Controle de Sequência e Pipeline — Aumente sua eficiência na linha de comando aprendendo a controlar sequências de execução de comandos, usar pipelines e aproveitar ferramentas avançadas de processamento de texto como cut, grep, wc, sort e uniq.

Lição concluída

Você concluiu cut

Agora você sabe selecionar posições previsíveis de textos orientados por linhas com cut.

  • Selecione posições ou intervalos de caracteres.

  • Extraia campos delimitados por tabulação com -f.

  • Forneça um delimitador de um caractere com -d.

  • Suprima linhas sem delimitador quando apropriado.

  • Leia texto estruturado de arquivos ou stdin.

Salve seu progresso

Crie uma conta gratuita para salvar esta lição e continuar em qualquer dispositivo.

Criar uma conta gratuita
Próxima Lição
Voltar para Text-Fu