Comando CUT usando delimitador TAB

Publicado por Mauricio Ferrari em 01/12/2020

[ Hits: 6.203 ]

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

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

Instalando o QMPlay2 no Debian e Derivados

Avidemux QT5 no Ubuntu 20.04

Não quer usar a PlayStore do Google, conheça uma alternativa

Instalando o FrostWire no Deepin 20

Leitura recomendada

Monitorando tráfego da interface de rede em três comandos

Como montar uma partição NTFS ou FAT32

Verificação constante de disponibilidade de serviços

Visual Studio Code disponível como SNAP para suportar distros Linux

Configurando placa Realtek RTL8191SE-VA2 no Kismet (Ubuntu e similares)

  

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