O comando `cut` do Linux é um dos comandos úteis para trabalhar com dados de string e conteúdo de arquivo. É usado principalmente para cortar conteúdo de dados tabulares ou arquivo CSV. Cada linha do arquivo pode ser fatiada e os dados necessários podem ser recuperados facilmente usando o comando `cut`. Também pode ser usado para cortar texto por delimitador, caractere ou posição de byte. Este comando tem muitas opções para cortar dados do texto ou arquivo de maneiras diferentes. Como o comando de corte pode ser usado com diferentes opções é mostrado neste tutorial usando vários exemplos.
Sintaxe:
O valor OPTION é obrigatório para usar para o comando `cut` e o nome do FILE é opcional. Se você omitir o nome do arquivo no comando, ele obterá os dados da entrada padrão. Mas se você omitir o valor OPTION no comando cut, o erro será gerado.
Opções:
Tag de opção | Descrição |
-b ou –byte = LIST | Selecione os bytes específicos. |
-c ou –character = LIST | Selecione os caracteres específicos. |
-d ou –delimiter = DELIM | Selecione o valor DELIM como delimitador. O delimitador padrão é TAB. |
-f ou –fields = LIST | Selecione os campos específicos |
–complement | Use para complementar a saída |
-s ou –only-delimited | Omita o linhas que não contêm delimitador. |
–output-delimiter = STRING | Use o valor STRING como delimitador de saída. |
-z ou –zero-terminado | Use NULL como delimitador de linha. |
Exemplo-1 : Corte em bytes
O seguinte comando de corte dividirá os dados de entrada padrão com base nos bytes definidos. Aqui, 3,4,5 e 6 são definidos como bytes. A saída será gerada com base na entrada padrão. Pressione CTRL + D para sair do comando.
Saída:
Aqui, a entrada é “Eu gosto de programação” e a saída é “semelhante” com base nos bytes mencionados.
Crie um arquivo de texto chamado “productlist.txt” com o seguinte conteúdo para aplicar o comando `cut`. Use TAB para separar os campos do conteúdo do arquivo.
01 Caneta $ 2
02 Lápis $ 1,5
03 Borracha $ 1
Execute o seguinte comando para recuperar apenas o ID do produto. Aqui, os bytes são fornecidos como um intervalo, ‘1-2 ′ para cortar os dados.
Resultado:
Exemplo-2: Cortado por caracteres
Você pode gerar a mesma saída usando a opção -c, que são mostradas nos exemplos anteriores. Portanto, não há nenhuma diferença particular entre a saída de -b e – c opções do comando cut. Execute o seguinte comando para mostrar o uso da opção -c. Aqui, 4- é usado como um valor de opção que cortará da posição 4 para todos os caracteres restantes de cada linha. Você também pode usar o sinal negativo na frente do valor como -4, então ele cortará do início para 4 posições.
Resultado:
Os primeiros três caracteres são omitidos na saída.
Exemplo-3: Corte por delimitador e campos
Crie um arquivo CSV denominado ‘students.csv’ com o seguinte conteúdo para mostrar o uso do delimitador.
1002, Micheal, EEE, 3,99
1003, Asraful Haque, BBA, 3,85
1004, Momotaj Khan, Inglês, 3.20
Execute o seguinte comando para imprimir o nome do aluno e CGPA do arquivo students.csv. De acordo com o conteúdo do arquivo, o 2º e o 4º campos contêm o nome do aluno e CGPA. Portanto, duas opções são usadas neste comando para mostrar a saída. Um é o delimitador, -d, que é ‘,’ aqui e outro é a opção de campo, -f.
Resultado:
Se você quiser imprimir duas ou mais colunas sequenciais de qualquer dado tabular ou arquivo CSV, então você pode definir os campos como um intervalo. O intervalo do valor do campo é usado no comando a seguir. Aqui, todos os campos de 2 a 4 serão impressos como saída.
Resultado:
Exemplo 4: Cortar por complemento
– a opção complementar é usada para gerar a saída oposta do comando . No comando a seguir, o arquivo productlist.txt é usado, o qual é criado no primeiro exemplo. Aqui, a opção -f cortará o primeiro campo e a opção –-complement irá imprimir todos os outros campos do arquivo omitindo o primeiro campo.
$ cut –complement -f 1 productlist.txt
Resultado:
Exemplo-5: Cortar por delimitador de saída
Esta opção é usada para gerar saída usando um delimitador específico. O arquivo students.csv criado anteriormente é usado no comando a seguir. ‘,’ É o delimitador padrão de qualquer arquivo CSV. O seguinte comando usa ‘:’ como valor delimitador de saída.
$ cut -d “,” -f 1- 3 students.csv –output-delimiter = “:”
Resultado:
Depois de executar o comando, o delimitador de entrada ‘,’ será substituído pelo delimitador de saída ‘:’ e os três primeiros campos serão impressos separando ‘:’.
Exemplo-6: Usando cortar com comando pipe
O comando Cut pode receber entrada de qualquer arquivo ou da entrada do usuário. Mas o texto de entrada pode ser enviado para o comando de corte usando o tubo. O comando a seguir mostra o uso do comando cortar com o tubo. Aqui, o comando echo será o texto de entrada para o comando de corte e o comando de corte cortará os campos 2 e 3 com base no delimitador.
Resultado:
Exemplo -7: Salvar a saída do comando recortar em um arquivo
Se desejar, você também pode salvar a saída do comando recortar em qualquer arquivo de texto. O comando a seguir pegará o conteúdo do arquivo students.csv como entrada, cortará o segundo campo com base no delimitador e imprimirá a saída em um arquivo de texto denominado ‘student_names.txt’.
Saída:
Conclusão:
Os usos mais comuns do comando cut são tentados para explicar neste tutorial usando o acima exemplos. Espero que os usos do comando cut sejam eliminados dos leitores após o exercício dos exemplos acima.