O comando cut é usado para cortar seções do fluxo de entrada padrão ou arquivos de dados utilizando o utilitário cut do Unix. É parte do pacote GNU Coreutils e do Sistema Básico BSD, portanto, disponível em todos os sistemas Linux e BSD por padrão. O comando cut no Unix permite o corte de seções com base em posições de byte, caracteres ou campos separados por um delimitador como os caracteres ‘-’ ou ‘:’. Nosso guia fornece uma introdução prática ao comando cut do Linux usando um conjunto bem selecionado de exemplos. Experimente-os enquanto lê este artigo para obter experiência em primeira mão.

Exemplos de Linux Cut Command no Unix

Nossos especialistas tentaram o seu melhor para fazer este guia amigável para novos usuários Linux. Além disso, ele servirá como um ponto de referência útil para usuários experientes. Encorajamos os leitores a experimentar os comandos à medida que os exploram. Vamos demonstrar esses comandos do Linux Cut usando a entrada padrão e um arquivo de referência. Você pode copiar e colar o conteúdo do arquivo aqui e criá-lo em seu sistema.

Arquivo de referência usado para fins de demonstração

Estamos usando um arquivo de texto chamado test.txt residindo no diretório inicial. O arquivo contém cinco linhas ou linhas, todas contendo quatro colunas. Cada linha inclui o nome de um país, sua capital, moeda e população; todos separados pelo delimitador e dois pontos. Crie este arquivo em seu sistema e preencha-o com o conteúdo abaixo.

Sintaxe do comando Cut no Unix

O comando cut do Linux tem a sintaxe abaixo.

cut OPTION... ...

Para cortar o texto do fluxo de entrada, nós ‘ Vou usar o comando echo e canalizar (|) sua saída para o comando cut. O mesmo método pode ser usado para fornecer a entrada de corte de cat.

Cortar texto com base nas posições de byte

A opção b fornecida pelo utilitário de corte nos permite cortar seções de um texto com base em suas posições de byte. Precisamos usar o comando cut com o sinalizador -b seguido pelos números de byte para este propósito.

1. Corte apenas um único byte do fluxo de entrada

$ echo "cutting text from input" | cut -b 1

O comando acima ecoa a string “corte de texto da entrada” para a saída padrão e canaliza-a como entrada para o comando cut. O comando cut cortará apenas o primeiro byte (c) desta string, pois apenas 1 foi fornecido com o sinalizador -b.

2. Corte bytes específicos do fluxo de entrada

$ echo "cutting text from input" | cut -b 1,3

Este comando cortará apenas o primeiro e o terceiro byte da string “cortando o texto da entrada” e exibirá “ct” como seu saída. Experimente com algumas posições de byte diferentes.

3. Corte o intervalo de bytes do fluxo de entrada

$ echo "cutting text from input" | cut -b 1-12

O comando acima cortará o intervalo de bytes de 1 a 12 da string fornecida e imprimirá “texto de corte” na saída padrão. Fornecer intervalos de bytes fora da ocupação da string resultará em uma mensagem mostrando “cortar: byte inválido ou intervalo de caracteres”.

4. Corte apenas um único byte do arquivo de texto

$ cut -b 1 test.txt

Este comando exibirá apenas os primeiros bytes de cada uma das cinco linhas dentro do arquivo test.txt. É equivalente ao comando $ cat test.txt | cut -b 1

5. Corte bytes específicos do arquivo de texto

$ cut -b 1,3 test.txt

O comando acima corta apenas o primeiro e o terceiro bytes de cada linha. pode especificar qualquer número de bytes, desde que estejam dentro do intervalo de bytes disponíveis.

6. Corte o intervalo de bytes do arquivo de texto

$ cut -b 1-12 test.txt

Este comando irá imprimir do primeiro ao décimo segundo bytes de cada linha no arquivo test.txt. Você deve notar a similaridade de funcionalidade que este comando possui com o terceiro comando.

7. Corte o primeiro 7 bytes em ordem alfabética

$ cut -b 1-7 test.txt | sort

Podemos fornecer a saída do comando cut como entrada para o comando sort para exibir os primeiros sete bytes de cada linha em ordem alfabética. Para classificação alfabética, o comando sort não requer nenhuma opção.

8. Corte os primeiros 7 bytes em ordem reversa

$ cut -b 1-7 test.txt | sort -r

Este comando de corte cortará os primeiros 7 bytes de cada linha e os produzirá na ordem reversa. Veja como a saída do comando de corte está sendo alimentada para o comando de classificação usando um tubo.

9. Corte do quinto byte para o final do fluxo de entrada

$ echo "cutting text from input" | cut -b 5-

O comando de corte acima cortará o texto do quinto byte até o final da string. Este comando será útil quando você precisar cortar de uma posição de byte especificada até o final do fluxo de entrada. Simplesmente altere o valor do sinalizador b enquanto mantém o trailing – on.

10. Corte do Quinto Byte para o Fim do Arquivo

$ cut -b 5- test.txt

Este comando começará a cortar cada uma das cinco linhas de teste.txt da posição de quinto byte e terminar somente após o término de cada linha. O hífen final (-) é obrigatório para esta operação.

11. Corte uma quantidade especificada de bytes começando do primeiro

$ echo "cutting text from input" | cut -b -5

Este comando cortará os primeiros cinco bytes da string de entrada. Você pode cortar do byte inicial para qualquer outra posição de byte apenas substituindo o valor do sinalizador b. Lembre-se de adicionar o hífen anterior (-), caso contrário, a saída não será a esperada.

12. Corte do primeiro byte para uma posição especificada do arquivo

$ cut -b -5 test.txt

O comando acima cortará apenas os primeiros cinco bytes de cada linha de nosso arquivo de texto. Observe como o hífen (-) está sendo usado para os comandos 9-12 nesta lista.

Cortar texto com base em caracteres

O comando cut no Unix permite aos usuários cortar uma seção de texto com base em caracteres. Ao lidar com tarefas de processamento de arquivos grandes, você precisará fazer isso com bastante frequência. Experimente e observe as semelhanças entre o corte baseado em caracteres e o corte baseado em bytes.

13. Corte apenas um único caractere do fluxo de entrada

$ echo "cutting text from input" | cut -c 1

O comando acima corta o primeiro caractere da entrada padrão e o exibe no terminal. Nesse caso, é “c”. Mude sua string para algo diferente para entender isso claramente.

14. Cortar caracteres específicos do fluxo de entrada

$ echo "cutting text from input" | cut -c 1,3

Este comando cortará apenas o primeiro e o terceiro caracteres da string de entrada e os mostrará. Você pode tentar cortar outros caracteres, mas lembre-se de não exceder o limite de caracteres de sua string.

15. Cortar intervalo de caracteres do fluxo de entrada

$ echo "cutting text from input" | cut -c 1-12

No caso deste comando, “cortar” cortará caracteres que vão da primeira à décima segunda posição. o resultado será “cortar texto”. Observe as semelhanças entre este comando de corte do Linux e o terceiro comando.

16. Corte apenas um único caractere do arquivo de texto

$ cut -c 1 test.txt

Este comando exibirá apenas os primeiros caracteres de cada uma das cinco linhas do nosso arquivo test.txt. É equivalente ao comando $ cat test.txt | cut -c 1 e fornece o mesmo resultado como obteríamos ao usar o sinalizador de byte.

17. Corte caracteres específicos do arquivo de texto

$ cut -c 7,10 test.txt

O comando acima corta apenas o sétimo e o décimo caracteres de cada cinco linhas. Você pode especificar as posições de qualquer caractere, desde que estejam dentro do intervalo de caracteres disponíveis.

18. Corte o intervalo de caracteres do arquivo de texto

Este comando irá imprimir do primeiro ao décimo segundo caracteres de cada linha no arquivo test.txt. O comando cut no Unix se comporta da mesma forma ao cortar uma faixa de caracteres e uma faixa de bytes.

19. Corte os 5 primeiros caracteres em ordem alfabética

$ cut -c 1-5 test.txt | sort

Você pode fornecer a saída do comando de corte como uma entrada para o comando de classificação para cortar os primeiros cinco bytes de cada linha em ordem alfabética. O comando de classificação não requer nenhuma opção ao classificar em ordem alfabética.

20. Corte os primeiros 5 caracteres em ordem reversa

$ cut -c 1-5 test.txt | sort -r

Este comando de corte cortará os primeiros cinco caracteres de cada linha e os mostrará após a classificação ao contrário. Veja como a saída do comando de corte está sendo alimentada para o comando de classificação usando um tubo.

21. Corte do quinto caractere para o final do fluxo de entrada

$ echo "cutting text from input" | cut -c 5-

O comando de corte acima cortará o texto começando do quinto byte até o final da string . Pode ser benéfico quando você precisa cortar de uma posição de caractere especificada até o final do fluxo de entrada. Simplesmente altere o valor após b enquanto mantém o trailing – on.

22. Cortar do quinto caractere para o fim do arquivo

$ cut -c 5- test.txt

Este comando começará a cortar cada uma das cinco linhas do arquivo test.txt a partir do quinto caractere posição e terminará após atingir o final de cada linha. O hífen final (-) é obrigatório para este tipo de operação.

23. Corte uma quantidade especificada de caracteres começando na primeira posição

$ echo "cutting text from input" | cut -c -5

Este comando cortará apenas as primeiras cinco posições de caracteres de nossa entrada. Você pode cortar do caractere inicial para qualquer outra posição de caractere apenas substituindo o valor -c. Lembre-se de adicionar o hífen anterior (-), caso contrário, a saída não será a mesma que você esperava.

24. Corte do primeiro caractere para uma posição especificada do arquivo

$ cut -c -5 test.txt

Este comando de corte no Unix cortará os primeiros cinco caracteres de cada linha do teste de arquivo. TXT. Observe como o hífen (-) está sendo usado para os comandos 21-24 nesta lista.

Cortar texto de colunas usando campos e delimitadores

O comando cortar permite aos usuários cortar seções de um texto muito facilmente. Para isso, precisamos usar os sinalizadores de corte de f. O sinalizador d significa delimitadores ef para campos. Delimitadores são caracteres especiais que separam as seções de um texto de outras. Exemplos comuns incluem ‘-‘, ‘:’ e ”” (espaço). O arquivo de referência que estamos usando tem ‘:’ como separador.

25. Corte a primeira seção do fluxo de entrada

$ echo "Let"s cut this input stream section by section" | cut -d " " -f 1

O comando de corte acima cortará a primeira seção do texto (“Vamos” neste caso) do fluxo de entrada. Observe que o valor para o sinalizador do delimitador -d é um único espaço. Experimente com o texto delimitado por dois pontos e veja o que acontece você mesmo.

26. Corte a primeira seção de um arquivo

$ cut -d ":" -f 1 test.txt

Este comando retornará as primeiras colunas de cada linha dentro do nosso arquivo de referência e imprimirá o nome de todos os cinco países. O valor fornecido para a sinalização do delimitador foi dois pontos porque é assim que nosso arquivo separa as colunas.

27. Cortar seções específicas do fluxo de entrada

$ echo "Let"s cut this input stream section by section" | cut -d " " -f 1,2,3

Aqui, instruímos cortar para mostrar apenas os três primeiros campos da string de entrada fornecida. É feito usando uma matriz separada por vírgulas de posições de campo. A saída deste comando será ‘Vamos cortar isso’.

28. Corte seções específicas de um Arquivo

$ cut -d ":" -f 1,2,3 test.txt

Este co mmand também fornecerá o mesmo tipo de saída do comando anterior. Aqui, cortar é apenas trabalhar em um arquivo em vez da entrada padrão, isso é tudo. Deve mostrar o nome, capital e moeda de cada país da lista. No entanto, observe a diferença entre seus delimitadores (espaço x dois pontos).

29. Cortar intervalo de campos do fluxo de entrada

$ echo "Let"s cut this input stream section by section" | cut -d " " -f 1-5

O comando acima cortará os primeiros cinco campos da string e os exibirá no terminal. Os apóstrofos são necessários quando o espaço é usado como delimitador entre vários campos.

30. Cortar intervalo de campos de um arquivo

$ cut -d ":" -f 1-3 test.txt

Este comando cortar cortará cada uma das três primeiras colunas de nosso arquivo de texto e mostrará como saída. Ele deve exibir o mesmo resultado fornecido pelo comando anterior ao anterior. Os apóstrofos não são obrigatórios para caracteres como – ou:.

31. Corte cada entrada de um campo específico e liste-os em ordem alfabética

$ cut -d ":" -f 1 test.txt | awk "{print $1}" | sort

Suponha que você precise descobrir os nomes dos cinco países em nossa lista em ordem alfabética, pode utilizar o comando acima para fazer isso. Ele listará os países classificados em ordem alfabética. Uma substituição no valor do sinalizador f permitirá que você faça isso em outros campos semelhantes.

32. Recorte cada entrada de um campo e liste-as em ordem alfabética inversa

$ cut -d ":" -f 1 test.txt | awk "{print $1}" | sort -r

Este comando faz a mesma operação que o anterior, apenas classifica as entradas no sentido inverso maneira, isso é tudo. A saída é alterada aqui devido ao sinalizador -r passado para classificar.

33. Corte de um campo fixo para o final do fluxo de entrada

$ echo "Let"s cut this input stream section by section" | cut -d " " -f 2-

Este comando de corte cortará a partir do segundo campo até o final da string. Pode ser benéfico quando você precisa cortar de uma posição especificada até o final da entrada. Você pode alterar o valor de -f enquanto mantém o rastreamento – on para o corte de campos diferentes.

34. Cortar de um campo fixo para o final de um arquivo

$ cut -d ":" -f 2- test.txt

Quando usado dessa forma, o comando cortar começará a cortar a partir do campo especificado e irá até o final de cada linha. Nesse caso, ele imprimirá a capital, a moeda e a população de cada um dos cinco países da lista.

35. Corte um número especificado de colunas começando da primeira

$ echo "Let"s cut this input stream section by section" | cut -d " " -f -5

Este comando cortará apenas os primeiros cinco campos da entrada fornecida. Você pode cortar da coluna inicial para qualquer outra posição da coluna apenas substituindo o valor -f. No entanto, você precisa adicionar o hífen anterior (-), caso contrário, a saída não corresponderá à sua expectativa.

36. Corte algumas colunas especificadas de um arquivo começando pela primeira

$ cut -d ":" -f -2 test.txt

Este comando de corte do Linux começará a cortar nosso arquivo test.txt da primeira coluna e terminará após terminou de cortar o segundo comando. Portanto, a saída deste comando simplesmente exibirá o nome de cada país e suas respectivas capitais.

37. Cortar vários campos de arquivos CSV

$ cut -d "," -f 1,2 file.csv

O comando cortar muitas vezes provará ser uma ferramenta viável quando você estiver trabalhando com documentos CSV enormes. O comando acima, por exemplo, cortará as duas primeiras colunas de um arquivo CSV separado por vírgulas chamado arquivo.csv.

38.Corte campos específicos de arquivos CSV e classifique-os em ordem reversa

$ cut -d "," -f 1,3,5 file.csv | sort -r

O comando acima cortará a primeira, terceira e quinta colunas de um CSV separado por vírgulas arquivo denominado file.csv e exibir a saída na ordem inversa.

Alguns comandos diversos do Linux Cut para especialistas

O comando cut pode ser usado para processamento de arquivo avançado, utilizando-o com o apropriado filtros e outros comandos robustos do Linux. A seguir, veremos alguns desses comandos que podem beneficiá-lo a longo prazo.

39. Inspecione o arquivo passwd usando o comando Cut

$ cut -d ":" -f1 /etc/passwd

O arquivo passwd armazenado dentro de / etc na maioria dos sistemas contém informações muito sensíveis sobre o sistema e seus usuários. Você pode inspecionar este arquivo rapidamente usando o comando cut. Delimitador ‘:’ é usado porque as colunas deste arquivo são separadas por ele. Altere o valor de -f para monitorar campos diferentes.

40. Cortar campos específicos e mostrar apenas as entradas exclusivas

$ cut -d ":" -f 3 test.txt | uniq -u

Este comando de corte no Linux cortará a terceira coluna do arquivo test.txt e mostrará apenas as entradas exclusivas . Portanto, para este arquivo, a saída conterá apenas três moedas – a saber, Euro, Lira e Iene.

41. Cortar todos os bytes do fluxo de entrada, exceto os especificados

$ echo "Let"s cut this input stream section by section" | cut -b 1,3,5,7 --complement

Este comando de corte cortará todos os caracteres da string de entrada fornecida, exceto os fornecidos para -b. Portanto, as posições de byte primeiro, terceiro, quinto e sétimo serão omitidas da saída.

42. Cortar todos os bytes de um arquivo, exceto os especificados

$ cut -b 2,4,6 test.txt --complement

Quando usado dessa maneira, o comando cortar cortará todos os bytes do arquivo test.txt exceto aquele mencionado no comando. Portanto, a saída não conterá o segundo, o quarto e o sexto bytes de cada linha.

43. Cortar todos os caracteres do fluxo de entrada, exceto os especificados

$ echo "Let"s cut this input stream section by section" | cut -c 1,3,5,7 --complement

Este comando evita cortar o primeiro, terceiro, quinto e sétimo caracteres da string de entrada e em vez disso corta todos os outros caracteres, exceto esses quatro.

44. Cortar todos os caracteres de um arquivo, exceto os especificados

$ cut -c 2,4,6 test.txt --complement

No caso deste comando, a saída conterá todos os caracteres dos arquivos test.txt, exceto aqueles mencionado. Portanto, o segundo, quarto e sexto caracteres não serão exibidos.

45. Cortar todas as seções de entrada, exceto as especificadas

$ echo "Let"s cut this input stream section by section" | cut -d " " -f 1,3,5 --complement

O comando acima produzirá a string “cortar entrada seção por seção”. Portanto, ele exibirá todas as seções de entrada sem as mencionadas após o sinalizador de campo.

46. Cortar todas as colunas de um arquivo, exceto as especificadas

$ cut -d ":" -f 2,3 test.txt --complement

Este comando cortará apenas a primeira e a última colunas do arquivo test.txt. Portanto, você pode desmarcar facilmente alguns campos ao processar grandes documentos tabulares usando o sinalizador de complemento.

47. Cortar uma seção de entrada e invertê-los no sentido de caractere

$ echo "Let"s cut this input stream section by section" | rev | cut -d " " -f 1,3

O comando Linux acima cortará a primeira e a terceira seção da entrada e os inverterá no sentido de caractere. Observe como a saída de um comando está sendo alimentada como entrada para outros comandos.

48. Cortar colunas específicas em um arquivo e invertê-las em caracteres

$ cut -d ":" -f 1,3 test.txt | rev

Este comando cortará apenas os campos especificados do arquivo test.txt e exibirá o resultado em caracteres maneira reversa.

49. Modificar o delimitador de saída do comando Cortar

$ echo "A,comma,separated,list,for,demonstration,purposes" | cut -d "," -f 1- --output-delimiter=" "

Cortar nos permite modificar o delimitador de saída ao exibir o resultado. O comando acima corta todas as seções da lista separada por vírgulas, mas substitui as vírgulas por espaços ao mostrar o resultado.

50. Exemplo de comando Cut + Sed com delimitador de tabulação

$ sed "s/:/\t/g" test.txt | cut -f 1-4

O último comando cut de nossa lista utiliza o poderoso utilitário sed para substituir os dois pontos em nosso arquivo por tabulações . Você pode substituir \ t por alguns outros caracteres como – ou; para alterar para um delimitador de saída de sua escolha.

Reflexões finais

O comando cut no Unix é uma ferramenta versátil que pode ajudar em vários benefícios para usuários que precisam processar arquivos grandes com freqüência. Descrevemos os 50 melhores comandos cut do Linux para ajudá-lo a se familiarizar com este utilitário fantástico. Você deve experimentá-los individualmente e fazer modificações nas várias opções disponíveis. Isso o ajudará a entender as diferentes variações do comando de corte em profundidade. Esperançosamente, tivemos sucesso em nossa busca para ajudá-lo tanto quanto possível. Fique conosco para mais guias futuros sobre comandos úteis do Linux.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *