Comando CUT usando delimitador TAB

Publicado por Mauricio Ferrari em 01/12/2020

[ Hits: 5.700 ]

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

Fortune em português no Slackware Current

Letras Bacanas no seu Shell Script sem Figlet

StarUML no Slackware 14.2

Kazam 1.4.5 no Slackware Current

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

Leitura recomendada

Leve o terminal Linux para o Windows

O comando tree - listar diretórios em formato árvore

Copiando CDs e DVDs pelo terminal com facilidade

Introdução ao uso do terminal (parte 2) [Vídeo]

Criando pastas em massa rapidamente no Linux

  

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