Comando CUT usando delimitador TAB

Publicado por Mauricio Ferrari em 01/12/2020

[ Hits: 6.913 ]

Blog: https://www.youtube.com/@LinuxDicasPro

 


Comando CUT usando delimitador TAB



O cut é um dentre vários comandos para o processamento de texto. Ele basicamente exibe apenas seções específicas de um arquivo de texto ou da saída de outros comandos.

Ele lê o conteúdo de arquivos ou saída de comandos, e apresenta o resultado como uma coluna. O cut é ótimo para trabalhar com delimitadores entre os dados como : ou ;.

Mas, no meu caso, precisei fazer um negócio diferente, o delimitador para mim precisava ser o próprio TAB. E como sabemos, o TAB é usado para autocompletar comandos no emulador de terminal.

Então, como usá-lo no cut? A solução foi simples, eu usei o comando dessa forma:

cut -d$'\t' -f2 lista | grep "ubuntu20.10.1_amd64" > saida

O comando funcionou e o segredo está no parâmetro -d que recebeu a delimitação $'\t'. Essa instrução, faz com que o cut use como delimitador o padrão de escape \t, o que resulta em TAB.

Espero que eu tenha ajudado.

Outras dicas deste autor

Extensão do Google Chrome para Notificação de E-mail do Google

OpenArena que funciona no Linux Mint 20

Sem Itens Repetidos no bash_history

Instalando o Genymotion no Slackware

Limpeza Extra no Slackware

Leitura recomendada

Script para instalação do Fluxbox no Void Linux

Criando apresentação em Latex

Usando Pesquisa Reversa no Terminal

Comandos SuSE Linux

Listando pacotes instalados com dpkg

  

Comentários
[1] Comentário enviado por Ryuk em 01/12/2020 - 19:11h

Aqui não funcionou! Lendo o man do cut diz que o TAB já é o separador padrão, então em tese não precisa do -d. É preciso prestar atenção se o editor de texto está configurado para escrever espaços no lugar do TAB. Fiz um teste aqui e o resultado foi...

$ cat arquivo.txt
c1 c2 c3 c4

Neste exemplo tenho espaços separando a primeira coluna da segunda e a terceira coluna da quarta, mas tem um TAB no meio, entre a segunda coluna e a terceira. Usando o cat -A para ver as tabulações fica assim (O TAB é representado como ^I):

$ cat -A arquivo.txt
c1 c2^Ic3 c4$

Ou seja, "c1[espaço]c2[TAB]c3[espaço]c4"

Usando o cut sem o -d o resultado é correto (usou o TAB como separador):

$ cut -f2 arquivo.txt
c3 c4

Mas, usando o -d' ' ou -d$' ' o cut usa espaço como separador e não o TAB:

$ cut -d' ' -f2 arquivo.txt
c2 c3

$ cut -d$' ' -f2 arquivo.txt
c2 c3

Ou seja, o cut pega "c2[TAB]c3" como campo 2.

[2] Comentário enviado por maurixnovatrento em 01/12/2020 - 20:21h


bugou minha dica vou ter que verificar.

___________________________________________________________
[code]Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento [/code]

[3] Comentário enviado por maurixnovatrento em 01/12/2020 - 20:28h


Concertei não sei quem mexeu, mas o correto é como está agora. Sobre o TAB ser o delimitador padrão eu não sabia, mesmo assim prefiro garantir e deixar assim. Vai que o delimitador padrão muda.

___________________________________________________________
[code]Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento [/code]

[4] Comentário enviado por Ryuk em 02/12/2020 - 10:24h

Ok, agora sim tá correto com -d$'\t', mas veja como o padrão do cut já é o TAB:

$ echo -e "c1 c2\tc3 c4" | cut -f2
c3 c4

$ echo -e "c1 c2\tc3 c4" | cut -d$'\t' -f2
c3 c4

Dá no mesmo usar ou não o "-d$'\t'"

[5] Comentário enviado por maurixnovatrento em 02/12/2020 - 12:39h


OK e agradeço por me avisar do erro na dica.

___________________________________________________________
[code]Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento [/code]



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts