Linux provides cut
command for remove sections from each line of output in bash. cut
command provides a mechanism to filter extract column/text from a file or standard output. Exemplos detalhados podem ser encontrados abaixo., Temos o seguinte arquivo de texto chamado fruits.txt
apple 1 good grape 5 bad banana 2 not bad
cut OPTION... ...
Selecione a Coluna
o comando Cut fornece a capacidade de selecionar uma coluna especificada de acordo com o número de caracteres para todas as linhas. Aqui vamos imprimir todas as linhas de 3 caracteres linha por linha para a consola. Isto só irá imprimir um único personagem.,
$ cut -c3 fruits.txt
Coluna select (Selecionar) Para o Intervalo de Caracteres
No exemplo anterior, temos impresso um único caractere para o terminal. Também podemos imprimir vários caracteres para o console, especificando o intervalo de caracteres como abaixo. Podemos ver que o índice de caracteres começa à 1.,
$ cut -c1-6 fruits.txt
Selecione a Coluna Usando a Posição de arranque
Outra funcionalidade útil de corte é especificar apenas a posição start até end.
$ cut -c3- fruits.txt
Selecione a Coluna Usando a Posição de Fim
podemos intervalo de impressão do início até a posição especificada apenas especificar a posição final., Isto irá assumir a posição de início como 1
$ cut -c-3 fruits.txt
Seleccione o Único Campo
O campo é uma parte de texto delimitados por caracteres específicos como o espaço, tab, duplo vírgula, etc. Podemos selecionar texto com números de campo. O separador de campos por omissão é a página. O nosso texto já está indicado na página de delimitação. Neste exemplo, selecionaremos 3. campo.,
$ cut -f3 fruits.txt
Selecionar Vários Campos
Como fazemos em caracteres podemos também especificar a faixa de campo. Vamos selecionar nomes de frutas e conta com o seguinte comando.
$ cut -f1-2 fruits.txt
O exemplo a seguir seleciona mais de um campo, um por um, não usando intervalos.,
$ cut -f1,2,3 fruits.txt
Último Campo
Um dos mais populares usos de cut
é a impressão último campo. O problema é que a contagem de Campos pode mudar de acordo com o texto e não podemos especificar o último campo apenas usando cut
comando. O exemplo a seguir usa rev
comando para obter o último campo.,
$ cat fruits.txt | rev | cut -f1 | rev
Selecionar Campos a Incluir Especificado de Caracteres
Por omissão cut
não tem a capacidade de excluir as linhas de acordo com os caracteres, mas grep
pode ser facilmente utilizado para implementar esse recurso., Vamos selecionar apenas as linhas contenham app
$ grep "app" fruits.txt | cut -f1-2
Selecione os Campos, Exceto Especificado de Caracteres
Nós podemos reverter o exemplo anterior e remover arquivos indesejados linhas. Vamos remover as linhas contém app
e, em seguida, imprimir colunas de 1 a 2 .,
$ grep -v "app" fruits.txt | cut -f1-2
Especifica o Delimitador
O delimitador é utilizado para dividir os campos. Por padrão, a página é usada como delimitador. But it can be specified with -d
option like below. Seguindo o exemplo, usamos :
como delimitador porque opasswd
file o usa. Então só queremos mostrar nomes de usuário que residem no campo 1.,
$ cut -d: -f1 /etc/passwd
Imprimir, Exceto Campos
Como podemos ver anteriormente campos pode ser impresso como varia muito. Também podemos imprimir com exceção de campos. Isto irá imprimir todos os campos de mudança de nome. Seguindo o exemplo, podemos querer imprimir todos os campos, exceto 2.
mudar o delimitador
o texto pode ter delimitadores por omissão. Em algumas situações, podemos querer mudar o delimitador ao imprimir no console., --output-delimiter
option can be used for this operation. The following example will change the tab delimiter to the comma.
$ cut -f1,2,3 --output-delimiter="," fruits.txt