Comando CUT usando delimitador TAB

Publicado por Mauricio Ferrari em 01/12/2020

[ Hits: 6.202 ]

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

Jogos e Programas para Windows portados em AppImage para Linux

Troque o Basename por Expansão de Parâmetros

Comando "fdisk -l" não funciona como usuário comum no Deepin [Resolvido]

Instalando a última versão do LibreOffice no Linux Mint e Ubuntu

Ícone do atunes não aparece no Menu Inicial no Slackware

Leitura recomendada

Bashburn: Grave CD/DVD pelo terminal

Aproveitando o Poder do Comando grep no Linux

Substituição avançada de texto no Vi/Vim

Redirecionando saída de comando para arquivo com sudo

bind - Criando atalhos no teclado (Ubuntu)

  

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