GeeksforGeeks (Português)

O comando cut no UNIX é um comando para cortar as seções de cada linha de arquivos e gravar o resultado na saída padrão. Ele pode ser usado para cortar partes de uma linha por posição de byte, caractere e campo. Basicamente, o comando cut corta uma linha e extrai o texto. É necessário especificar a opção com o comando, caso contrário dá erro. Se mais de um nome de arquivo for fornecido, os dados de cada arquivo não serão precedidos por seu nome de arquivo.

Sintaxe:

cut OPTION... ...

Vamos considerar dois arquivos com o nome state.txt e o capital.txt contém 5 nomes dos estados indianos e maiúsculas, respectivamente.

$ cat state.txtAndhra PradeshArunachal PradeshAssamBiharChhattisgarh

Sem nenhuma opção especificada, ele exibe erro.

$ cut state.txtcut: you must specify a list of bytes, characters, or fieldsTry "cut --help" for more information.

Opções e sua descrição com exemplos:

1. -b (byte): Para extrair os bytes específicos, você precisa seguir a opção -b com a lista de números de bytes separados por vírgula. O intervalo de bytes também pode ser especificado usando o hífen (-). É necessário especificar uma lista de números de bytes, caso contrário, ocorrerá um erro. Tabs e backspaces são tratados como um caractere de 1 byte.

Ele usa um formulário especial para selecionar bytes do início até o final da linha:

In this, 1- indicate from 1st byte to end byte of a line$ cut -b 1- state.txtAndhra PradeshArunachal PradeshAssamBiharChhattisgarhIn this, -3 indicate from 1st byte to 3rd byte of a line$ cut -b -3 state.txtAndAruAssBihChh

2. -c (coluna): Para cortar por caractere, use a opção -c. Isso seleciona os caracteres dados à opção -c. Pode ser uma lista de números separados por vírgulas ou um intervalo de números separados por hífen (-). Tabs e backspaces são tratados como um caractere. É necessário especificar a lista de números de caracteres, caso contrário, ocorrerá um erro com esta opção.

Sintaxe:

$cut -c filename

Aqui, k denota o posição inicial do caractere en denota a posição final do caractere em cada linha, se k e n forem separados por “-“, caso contrário, eles são apenas a posição do caractere em cada linha do arquivo tomado como entrada.

$ cut -c 2,5,7 state.txtnrrahsmirhti

O comando de corte acima imprime o segundo, o quinto e o sétimo caractere de cada linha do arquivo.

$ cut -c 1-7 state.txtAndhraArunachAssamBiharChhatti

O comando de corte acima imprime os primeiros sete caracteres de cada linha do arquivo.

O corte usa um formulário especial para selecionar os caracteres do início ao fim da linha:

$ cut -c 1- state.txtAndhra PradeshArunachal PradeshAssamBiharChhattisgarhAbove command prints starting from first character to end. Here in command only startingposition is specified and the ending position is omitted.$ cut -c -5 state.txtAndhrArunaAssamBiharChhatAbove command prints starting position to the fifth character. Here the starting positionis omitted and the ending position is specified.

3. -f (campo): a opção -c é útil para linhas de comprimento fixo. A maioria dos arquivos unix não tem linhas de comprimento. Para extrair as informações úteis, você precisa cortar por campos em vez de colunas. Lista dos campos número específico cado deve ser separado por vírgula. Os intervalos não são descritos com a opção -f. cut usa tabulação como delimitador de campo padrão, mas também pode funcionar com outro delimitador usando a opção -d.
Observação: O espaço não é considerado um delimitador no UNIX.

Sintaxe:

$cut -d "delimiter" -f (field number) file.txt

Como no arquivo state.txt, os campos são separados por espaço, se a opção -d não for usada, ele imprime a linha inteira:

$ cut -f 1 state.txtAndhra PradeshArunachal PradeshAssamBiharChhattisgarh

Se a opção -d for usada, ela considera o espaço como um separador ou delimitador de campo:

$ cut -d " " -f 1 state.txtAndhraArunachalAssamBiharChhattisgarh
Command prints field from first to fourth of each line from the file.Command:$ cut -d " " -f 1-4 state.txtOutput:Andhra PradeshArunachal PradeshAssamBiharChhattisgarh

4. –Complemento: como o nome sugere, complementa a saída. Esta opção pode ser usada em combinação com outras opções com -f ou com -c.

5. –Output-delimiter: Por padrão, o delimitador de saída é o mesmo que o delimitador de entrada que especificamos no corte com a opção -d. Para alterar o delimitador de saída, use a opção –output-delimiter = ”delimitador”.

$ cut -d " " -f 1,2 state.txt --output-delimiter="%"Andhra%PradeshArunachal%PradeshAssamBiharChhattisgarh

Aqui, o comando de corte altera o delimitador (%) na saída padrão entre os campos que são especificados usando a opção -f.

6. –Version: Esta opção é usada para exibir a versão do cut que está atualmente em execução em seu sistema.

$ cut --versioncut (GNU coreutils) 8.26Packaged by Cygwin (8.26-2)Copyright (C) 2016 Free Software Foundation, Inc.License GPLv3+: GNU GPL version 3 or later .This is free software: you are free to change and redistribute it.There is NO WARRANTY, to the extent permitted by law.Written by David M. Ihnat, David MacKenzie, and Jim Meyering.

Aplicativos do comando cut

1. Como usar cauda com tubos (|): O comando cut pode ser ligado com muitos outros comandos do unix. No exemplo a seguir, a saída do comando cat é fornecida como entrada para o comando cut com a opção -f para classificar os nomes de estado provenientes do arquivo state.txt na ordem inversa.

$ cat state.txt | cut -d " " -f 1 | sort -rChhattisgarhBiharAssamArunachalAndhra

Ele também pode ser conectado com um ou mais filtros para processamento adicional. Como no exemplo a seguir, estamos usando os comandos cat, head e cut e cuja saída é armazenada no nome do arquivo list.txt usando a diretiva (>).

$ cat state.txt | head -n 3 | cut -d " " -f 1 > list.txt$ cat list.txtAndhraArunachalAssam

Obrigado Saloni Gupta por fornecer mais exemplos.

Tags de artigo:

Deixe uma resposta

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