10 Exemplos práticos de comandos Cut do Linux para selecionar colunas de arquivo
O comando cut do Linux é usado para processamento de texto. Você pode usar este comando para extrair parte do texto de um arquivo selecionando colunas.
Este tutorial fornece alguns exemplos práticos do comando cortar que você pode usar em suas atividades diárias de linha de comando.
Para a maior parte do exemplo, usaremos o seguinte arquivo de teste.
$ cat test.txtcat command for file oriented operations.cp command for copy files or directories.ls command to list out files and directories with its attributes.
Selecione a coluna de caracteres
Para extrair apenas uma coluna desejada de um arquivo, use a opção -c. O exemplo a seguir exibe o segundo caractere de cada linha de um arquivo test.txt
$ cut -c2 test.txtaps
Como visto acima, os caracteres a, p, s são o segundo caractere de cada linha do arquivo test.txt.
Selecione a coluna de caracteres usando intervalo
O intervalo de caracteres também pode ser extraído de um arquivo especificando a posição inicial e final delimitada por -. O exemplo a seguir extrai os primeiros 3 caracteres de cada linha de um arquivo chamado test.txt
$ cut -c1-3 test.txtcatcpls
Selecione a coluna de caracteres usando a posição inicial ou final
Tanto a posição inicial quanto a posição final podem ser passadas para o comando de corte com a opção -c.
O seguinte especifica apenas a posição inicial antes de ‘-‘. Este exemplo extrai do terceiro caractere até o final de cada linha do arquivo test.txt.
$ cut -c3- test.txtt command for file oriented operations. command for copy files or directories. command to list out files and directories with its attributes.
O seguinte especifica apenas a posição final após o ‘-‘. Este exemplo extrai 8 caracteres do início de cada linha do arquivo test.txt.
$ cut -c-8 test.txtcat commcp commals comma
A linha inteira seria impressa quando você não especificasse um número antes ou depois de ‘-‘ conforme mostrado abaixo.
$ cut -c- test.txtcat command for file oriented operations.cp command for copy files or directories.ls command to list out files and directories with its attributes.
Selecione um campo específico de um arquivo
Em vez de selecionar o número x de caracteres, se quiser extrair um campo inteiro, você pode combinar as opções -f e -d. A opção -f especifica qual campo você deseja extrair, e a opção -d especifica qual é o delimitador de campo que é usado no arquivo de entrada.
O exemplo a seguir exibe apenas o primeiro campo de cada linha de / arquivo etc / passwd usando o delimitador de campo: (dois pontos). Nesse caso, o primeiro campo é o nome de usuário. O arquivo
$ cut -d":" -f1 /etc/passwdrootdaemonbinsyssyncgamesbala
Selecione vários campos de um arquivo
Você também pode extrair mais de um campo de um arquivo ou stdout. O exemplo abaixo exibe o nome de usuário e o diretório inicial de usuários que possuem o shell de login como “/ bin / bash”.
$ grep "/bin/bash" /etc/passwd | cut -d":" -f1,6root:/rootbala:/home/bala
Para exibir o intervalo de campos, especifique o campo inicial e o campo final conforme mostrado abaixo. Neste exemplo, estamos selecionando os campos 1 a 4, 6 e 7
$ grep "/bin/bash" /etc/passwd | cut -d":" -f1-4,6,7root:x:0:0:/root:/bin/bashbala:x:1000:1000:/home/bala:/bin/bash
Selecione os campos somente quando uma linha contiver o delimitador
Em nosso exemplo / etc / passwd, se você passar um delimitador diferente de: (dois pontos), o corte apenas exibirá a linha inteira.
No exemplo a seguir, nós ‘ especificamos o delimitador como | (barra vertical) e o comando de corte simplesmente exibe a linha inteira, mesmo quando não encontra nenhuma linha que tenha | (barra vertical) como delimitador.
$ grep "/bin/bash" /etc/passwd | cut -d"|" -f1root:x:0:0:root:/root:/bin/bashbala:x:1000:1000:bala,,,:/home/bala:/bin/bash
Mas, é possível filtrar e exibir apenas as linhas que contêm o delimitador especificado usando a opção -s.
O exemplo a seguir não exibe nenhuma saída, como o comando cut não não encontre nenhuma linha que tenha | (barra vertical) como delimitador no arquivo / etc / passwd.
$ grep "/bin/bash" /etc/passwd | cut -d"|" -s -f1
Selecionar todos os campos, exceto os campos especificados
Para complementar a lista de campos de seleção, use a opção –complementar.
O exemplo a seguir exibe todos os campos do arquivo / etc / passwd exceto o campo 7
$ grep "/bin/bash" /etc/passwd | cut -d":" --complement -s -f7root:x:0:0:root:/rootbala:x:1000:1000:bala,,,:/home/bala
Alterar delimitador de saída para exibição
Por padrão, o delimitador de saída é o mesmo como delimitador de entrada que especificamos na opção cut -d.
Para alterar o delimitador de saída, use a opção –output-delimiter como mostrado abaixo. Neste exemplo, o delimitador de entrada é: (dois pontos), mas o delimitador de saída é # (hash).
$ grep "/bin/bash" /etc/passwd | cut -d":" -s -f1,6,7 --output-delimiter="#"root#/root#/bin/bashbala#/home/bala#/bin/bash
Alterar delimitador de saída para nova linha
Neste exemplo, cada campo da saída do comando cut é exibido em uma linha separada. Ainda usamos –output-delimiter, mas o valor é $ ‘\ n’, o que indica que devemos adicionar uma nova linha como delimitador de saída.
$ grep bala /etc/passwd | cut -d":" -f1,6,7 --output-delimiter=$"\n"bala/home/bala/bin/bash
Combine Cortar com outra saída de comando Unix
O poder do comando cortar pode ser percebido quando você o combina com o padrão de algum outro comando Unix.
Depois de dominar o uso básico do comando cortar que explicamos acima, você pode usar sabiamente o comando cut para resolver muitos dos seus requisitos de manipulação de texto.
O exemplo a seguir indica como você pode extrair apenas informações úteis da saída do comando ps. Também mostramos como filtramos a saída do comando ps usando grep e sed antes que a saída final fosse fornecida para o comando cut.Aqui, usamos as opções de corte -d e -f que explicamos nos exemplos acima.
Se gostou deste artigo, também pode gostar ..
|
|