Comando cut – Retornando colunas de um arquivo de texto – LPI 1
Comando cut – Retornando colunas de um arquivo de texto
O comando cut é utilizado para remover seções em cada linha de um arquivo – “cortar” colunas de dados separadas por um caractere delimitador comum, e imprimi-las na saída padrão. O arquivo original não é modificado.
Sintaxe
$ cut [opções] arquivos
Opções mais comuns
-b, –bytes=LISTA
Selecionar apenas os bytes dessa lista
-c, –characters=LISTA
Selecionar apenas as colunas de caracteres dessa lista
-f[n], –fields=n
Selecionar apenas os n campos listados. Também irá imprimir as linhas que não contenham caracteres delimitadores, a não ser que seja especificada a opção -s
-d[d], –delimiter=d
Usar o delimitador d especificado em vez do padrão, que é o TAB (tabulação).
-s, –only-delimited
Não imprimir linhas que não contenham delimitadores.
–help
Mostrar a ajuda e sair
–version
Mostrar informações sobre a versão do pacote e sair.
Devemos usar apenas uma das opções b, c ou f. Ao usarmos b ou c, não devemos usar delimitadores.
Para esta lição usaremos um arquivo de nome Lista_Frutas, com o conteúdo a seguir para nossos exemplos (crie o arquivo em seu editor de textos preferido):
1 Laranja 2,00 2 Maçã 3,50 3 Açaí 7,00 4 Tangerina 4,00 5 Abacaxi 4,50 6 Caju 6,00 7 Mamão 2,30 8 Pitanga 4,30 9 Romã 8,50 10 Acerola 6,30 11 Graviola 3,80
Exemplos
1. Imprimir apenas a lista de frutas, sem os números de ordem nem o preços. Os nomes de frutas estão na coluna 2. Perceba que o delimitador neste arquivo é o espaço em branco. Para simbolizá-lo no comando cut, use um espaço entre aspas simples – ‘ ‘
# cut -d' ' -f2 Lista_Frutas
2. Imprimir a lista de frutas com seus respectivos preços (colunas 2 e 3):
# cut -d' ' -f2,3 Lista_Frutas
3. Idem anterior, porém colocando a lista em ordem alfabética (usaremos o comando sort para isso):
# cut -d' ' -f2,3 Lista_Frutas | sort
4. O arquivo /etc/passwd possui informações sobre as contas de usuários do sistema. Essas informações são organizadas em colunas, separadas por dois-pontos (:). Abaixo vemos um trecho desse arquivo:
Veja que há muitas informações agrupadas. A primeira coluna traz os nomes dos usuários. Vamos usar o comando cut para retornar apenas uma lista com esses nomes de usuários:
# cut -d: -f1 /etc/passwd
5. No arquivo Lista_Frutas, imprimir a lista de caracteres da primeira e segunda colunas do arquivo:
# cut -c1,2 Lista_Frutas
6. Mostrar o nome de usuário e UID dos usuários cujo shell de login é o bash (campos 1 e 3 do arquivo /etc/passwd):
# grep "/bin/bash" /etc/passwd | cut -d: -f1,3
É isso aí! Aproveite e assista também a um vídeo explicativo sobre o utilitário cut no Linux:
que grande ajuda!! muito obrigado