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.
[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:
[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.