Os sistemas operacionais baseados em Linux oferecem muitos utilitários de processamento de texto de linha de comando que você pode usar em sua rotina diária. O comando cut é um desses utilitários de manipulação de texto que usa delimitadores, bytes, campos e colunas para buscar uma string necessária de um banco de dados de arquivo simples ou de uma linha.

Como um banco de dados flat-file não possui uma relação estrutural e os registros são separados com a ajuda de delimitadores, cut é uma ferramenta ideal para extrair caracteres ou bytes de informação. Este artigo discute o comando de corte em detalhes e demonstra alguns exemplos práticos com diferentes opções de filtro para você começar a usar a ferramenta.

Visão geral do comando de corte

cut usa a seguinte sintaxe básica:

cortar 

Você também pode canalizá-lo com outros comandos da seguinte forma:

echo “string_of_characters” | cortar 

Observe que a ausência de qualquer opção gera um erro. Aqui estão alguns sinalizadores que você pode usar com cut para invocar suas várias funções:

instagram viewer
Opção Descrição
-b Cortes por posição de byte
-c Cortes por posição do personagem
-d Extrai a string usando o delimitador especificado com a opção de campo (-f)
-f Extrações por um campo especificado
-s Extrações apenas para delimitadores
--complemento Imprima a saída, exceto para o campo que você especificou
--delimitador de saída Substitua o delimitador existente pelo que você especificou

Aqui estão alguns exemplos do comando de corte que o ajudarão a entender melhor a ferramenta e suas funções.

1. Extrair caracteres específicos de uma string

Use o -b opção para buscar strings de caracteres por sua contagem de bytes, como segue:

echo "Olá Mundo" | corte -b 1,2,3,5,8,9

Saída:

Heloor

Você também pode especificar um caminho de arquivo em vez de uma string:

cut -b 1,2,3,4,5 nomedoarquivo.txt

Ou você pode extrair caracteres de acordo com sua posição no texto. Use o -c opção seguida pela sequência/ordem de caracteres que você precisa buscar da seguinte forma:

echo "Olá Mundo" | corte -c 1,2,3,5,6,8,10,11

Saída:

Olá velho

Da mesma forma, para buscar campos ou colunas de um banco de dados de arquivo simples, use o comando cut com o -f opção de bandeira:

cut -f 3 banco de dados.txt

2. Faixa de corte de bytes ou caracteres

Você também pode usar o -b flag com o comando cut para extrair e imprimir vários intervalos de bytes da seguinte forma:

cut -b 1-7,16-23 database.txt

Você pode definir o intervalo para buscar caracteres usando o -c sinalizar da seguinte forma:

cut -c 1-7,16-23 database.txt

3. Extrair texto das posições inicial ou final

Use o -cn- opção para extrair texto do enésimo caractere até o final da linha, onde n é o índice de um caractere na string.

Por exemplo, para extrair a string começando do sexto caractere até o final da linha:

cut -c6- database.txt

Ou use o seguinte comando para buscar do início até o último m caracteres do arquivo:

cut -c-8 database.txt

4. Cortar vários campos de um arquivo

Você também pode imprimir vários campos de um arquivo usando o -f bandeira.

cut -f 1,2 database.txt

Saída:

NOME IDADE 
João 20
Lisa 24
Jack 18
Bruce 23
Nancy 19

5. Extrair texto usando delimitadores

Você pode usar o -d sinalizador para especificar o delimitador com o -f opção. O delimitador especifica o caractere usado para separar campos em um arquivo de texto.

Por exemplo, para extrair a primeira coluna do /etc/passwd arquivo, use dois pontos (:) como delimitador:

cut -d ':' -f 1 /etc/passwd

Da mesma forma, o valor do delimitador no fluxo de texto fornecido é um único espaço:

echo "O 1% do 1%" | corte -d ' ' -f 2,3

Saída:

1% de

6. Alterar delimitador de saída para exibição

O --delimitador de saída sinalizador adiciona flexibilidade à saída do comando de corte. Por exemplo, você pode usar o sinalizador para exibir a saída em uma linha separada usando o $'\n' (nova linha), como segue:

grep alice /etc/passwd | cut -d ':' -f 1,5,7 --output-delimiter=$'\⁠n'

Saída:

alice
Alice
/bin/sh

Além disso, você também pode substituir um delimitador de um arquivo de entrada pelo delimitador de sua escolha na saída usando o --delimitador de saída bandeira:

grep root /etc/passwd | cut -d ':' -f 1,6,7 --output-delimiter=@

Saída:

root@/root@/bin/bash
nm-openvpn@/var/lib/openvpn/chroot@/usr/sbin/nologin

7. Cortar campos apenas quando uma linha contém o delimitador

Use o -s sinalizador para extrair campos somente quando as linhas contiverem um delimitador. Por exemplo, o comando a seguir não buscará o campo -f 1 a menos que tenha um delimitador de espaço:

echo "OláMundo" | corte -d " " -f 1 -s

Pelo contrário, o comando abaixo mencionado gerará uma saída, pois a string contém o delimitador especificado:

echo "Olá Mundo" | corte -d " " -f 1 -s

Saída:

Olá

Da mesma forma, você também pode usar qualquer outro caractere como delimitador:

echo "Olá: Mundo" | corte -d ":" -f 2 -s

Saída:

Mundo

8. Complemente a saída do comando

O utilitário de corte também permite imprimir todos os campos, exceto o campo especificado. Use o --complemento opção da seguinte forma para buscar todos os detalhes da conta do usuário root, exceto a quinta coluna:

grep "raiz" /etc/passwd | cut -d ':' --complemento -s -f 5

Saída:

root: x: 0:0:/root:/bin/bash

Da mesma forma, no exemplo abaixo, o -f 1 parâmetro deve exibir Olá texto, no entanto, devido ao --complemento opção, imprime apenas o resto.

echo "Olá ao mundo inteiro" | corte -d " " -f 1 --complemento

Saída:

ao mundo inteiro

A melhor parte é que você pode combinar o comando cut com a saída padrão de outros comandos Linux/Unix.

sed é uma dessas ferramentas de edição de texto que você pode usar para excluir, inserir e substituir seu texto. Você pode facilmente canalizar sua saída para o comando de corte.

No exemplo abaixo, o comando grep a saída é canalizada para o utilitário sed que substitui dois pontos (:) por um hífen (-) e, em seguida, cut exibe os campos 1, 6 e 7 da seguinte forma:

grep alice /etc/passwd | sed 's/:/-/g' | corte -d ' ' -f 1,5,7

Saída:

alice-x-1005-1008-Alice-/home/novo/alice-/bin/sh

Trabalhando com texto no Linux usando cut

O comando cut é um utilitário de linha de comando flexível e eficiente que você pode usar em vários casos de uso de manipulação de texto. Ele utiliza operações para filtrar texto de arquivos ou dados de entrada padrão. O utilitário também tem a vantagem de permitir que os usuários limitem o texto que desejam exibir e adicionem delimitadores de sua própria escolha.

No entanto, este comando também tem algumas limitações. Você não pode usar expressões regulares para especificar o delimitador ou usar várias opções de comando de corte simultâneo. Este artigo cobriu exemplos práticos do nível básico ao avançado deste utilitário para ajudar os iniciantes a entender claramente os comandos de manipulação de texto no Linux.

Os 5 comandos de manipulação de texto Linux mais úteis

Quer melhorar seu jogo Linux e aprender mais sobre manipulação de texto? Aqui estão as cinco principais ferramentas de linha de comando do Linux para começar sua jornada.

Leia a seguir

CompartilhadoTweetE-mail
Tópicos relacionados
  • Linux
  • Comandos Linux
  • Linux elementar
  • Shell Bash Linux
Sobre o autor
Rumaisa Niazi (10 Artigos Publicados)

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.

Mais de Rumaisa Niazi

Assine a nossa newsletter

Junte-se à nossa newsletter para dicas de tecnologia, análises, e-books gratuitos e ofertas exclusivas!

Clique aqui para assinar