Pular para o conteúdo

Comando CUT usando delimitador TAB

Dica publicada em Linux / Comandos
Mauricio Ferrari (LinuxProativo) maurixnovatrento
Hits: 7.403 Categoria: Linux Subcategoria: Comandos
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Como Criar e Aplicar um Patch de Correção de Código

uGet no Linux Mint 20 com suporte a Torrent

WhatsApp Desktop Aceitável no Deepin 20

Leafpad no Linux Mint 20

Instalando o Java 14 no Ubuntu, Linux Mint e Debian

Declarando "netbios name" no Samba

Executando um Comando ou Programa como Outro Usuário

Como economizar na digitação do seu prompt?

Comando para listar usuários comuns

O comando uname

#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.
#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.

___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento
#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'"

Contribuir com comentário

Entre na sua conta para comentar.