De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


Opções úteis do cut mas não muito usadas

Colaboração: Julio Cezar Neves

Data de Publicação: 17 de setembro de 2018

Antes da dica de hoje, um pequeno lembrete. A primeira aula do workshop gratuito sobre Programação Shell Linux já está no ar. Para assistir o vídeo visite nosso portal educacional.

Eu gostaria também de pedir um favor, deixe seu comentário, positivo ou negativo, é sempre útil para melhorarmos nosso conteúdo.

Muito obrigado e um ótimo dia para você :-)


Mais três opções do cut que, apesar de pouco usadas, são muito úteis porque em casos específicos evitam um grande trabalho. São elas:

Diretiva Descrição
-s Não lista as linhas que não possuem o delimitador especificado.
--complement Lista tudo menos o campo definido.
--output-delimiter Especifica o delimitador que virá na saída do comando.

Veja os exemplos:

$ ls arq*
arq1 arq2.txt arq3.sh

Para pegar somente as extensões (mas repare que arq1 não tem extensão), devemos fazer:

$ ls arq* |cut -f2 -d.
arq1
txt
sh

EPA! arq1 não tinha que estar aí! O que houve? O problema foi ocasionado pelo padrão (default) do cut. Caso o alvo não tenha o separador definido, ele mandará tudo para a saída. Para evitar que isso aconteça, ou seja, para termos como resposta somente os campos que especificamos, existe a opção -s. Veja-a em uso:

$ ls arq* |cut -sf2 -d.
txt
sh

Veja agora o uso das opções --complement e --output-delimiter:

$ seq -s: 10
1:2:3:4:5:6:7:8:9:10
$ seq -s: 10 | cut -f5 -d: --complement
1:2:3:4:6:7:8:9:10         # Não listou o quinto campo
$ seq -s: 10 | cut -f5 -d: --complement --output-delimiter \|
1|2|3|4|6|7|8|9|10         # Substituiu, na saída, o delimitador : por |
$ seq -s: 10 | cut -f5 -d: --complement --output-delimiter $'\n'
1
2
3
4
6
7
8
9
10

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Julio Cezar Neves