É sempre válido revisitar comandos esquecidos do bash. Três dos mais úteis que parecem ter sido esquecidos no uso comum são o cut
, paste
e o comando de tradução, tr
. cut
e paste
fazem exatamente o que você espera, e apesar de soarem banais, surpreende quão poderosos podem ser quando usados na linha de comando ou em scripts.
cut
normalmente é um pouco mais útil do que o comando paste
. Executar o cut
recorta parte de uma linha e a redireciona para a saída padrão. Predeterminadamente, o comando usa tabulação como separador de campos, mas isto pode ser alterado usando -d
, e os campos são selecionadas ao usar o indicador -f
.
paste
efetivamente permite que você possa mesclar conteúdos em colunas, como um cat
vertical. A melhor maneira de ver como funciona é criando dois arquivos de texto, cada um com três linhas de dados separadas. A saída do paste
será o conteúdo do primeiro arquivo numa coluna à esquerda no segundo arquivo.
O comando tr
é usado para apagar saídas irrelevantes, como espaços ou tabulações. A opção mais útil é a -s
, que remove espaços repetidos em seqüências de um simples caracter. Use a saída de ls -al
, que gera uma longa lista de diretórios incluindo o tamanho dos arquivos preenchidos com espaços para melhor visualização. O comando tr
pode ser usado para removê-los e colocar um simples caracter de espaço como separação de campos.
Um exemplo de como estes comandos podem trabalhar juntos:
ls -al --sort=size /usr/bin | tr -s ' ' | cut -d ' ' -f 5,8
A longa saída de ls
é classificada e então transportada para o comando de tradução. Este remove o preenchimento, deixando os campos separados por um caracter de espaço. Depois o cut
usa o caracter de espaço como um delimitador de campo e pega os campos 5 e 6 da saída. O que você tem é uma lista de arquivos, classificadas por tamanho, mostrando apenas o tamanho e o nome do arquivo.