Você pode exibir um arquivo delimitado no terminal Linux para que cada item delimitado seja exibido em sua própria coluna. Por exemplo, aqui está um exemplo da tabela Premier League de futebol inglês que usa pipes como delimitadores.
pos | team | pld | pts 1 | leicester | 31 | 66 2 | tottenham | 31 | 61 3 | arsenal | 30 | 55 4 | homem cidade | 30 | 51 5 | presunto ocidental | 30 | 50 6 | homem utd | 30 | 50 7 | southampton | 31 | 47 8 | stoke city | 31 | 46 9 | liverpool | 29 | 44 10 | Chelsea | 30 | 41
Esta lista inclui os 10 melhores times, seus nomes, o número de jogos que eles jogaram e os pontos marcados.
Há vários comandos do Linux que você pode usar para exibir os dados na linha de comando. Por exemplo, o gato comando exibe o arquivo exatamente como aparece no arquivo. o rabo comando pode ser usado para mostrar uma parte do arquivo ou todo ele, assim como cabeça comando. No entanto, nenhum desses comandos exibe a saída de maneira que pareça boa.
O ideal é que você queira ver os dados sem o símbolo do pipe e espaçados. É aí que o coluna o comando entra.
Uso básico do comando de coluna
Você pode executar o comando column sem nenhum parâmetro da seguinte maneira:
coluna
Isso funciona melhor com arquivos de palavras com espaços entre as palavras. não funciona tão bem com dados tabulares como neste exemplo da tabela classificativa.
A saída é a seguinte:
pos | team | pld | pts 2 | tottenham | 31 | 61 4 | homem cidade | 30 | 51 6 | homem utd | 30 | 50 8 | stoke cidade | 31 | 46 10 | Chelsea | 30 | 41 1 | leicester | 31 | 66 3 | arsenal | 30 | 55 5 | presunto ocidental | 30 | 50 7 | southampton | 31 | 47 9 | liverpool | 29 | 44
Especificando a largura da coluna
Se você souber as larguras das colunas, poderá usar o seguinte comando para separar a coluna por largura:
coluna -c
Por exemplo, se você sabe que a largura de cada coluna é de 20 caracteres, você pode usar o seguinte comando:
coluna -c20
No caso da tabela de classificação, isso não funciona bem, a menos que todas as colunas tenham uma certa largura. Para provar isso, altere o arquivo da tabela de classificação da seguinte maneira:
pos equipe pld pts 1 leicester 31 66 2 tottenham 31 61 3 arsenal 30 55 4 homem da cidade 30 51 5 presunto ocidental 30 50 6 homem ut 30 3 7 so'ton 31 47 8 stoke 31 46 9 liverpool 29 44 10 chelsea 30 41
Agora, usando o seguinte comando, você pode obter uma saída decente:
coluna -c10 leaguetable
O problema com isso é que os dados no arquivo já pareciam bons, de modo que os comandos tail, head, nano ou cat pudessem mostrar as mesmas informações de uma maneira aceitável.
Especificando separadores usando o comando de coluna
A melhor maneira de usar o comando column em vírgula, pipe ou outros arquivos delimitados é a seguinte:
coluna -s "|" -t
A opção -s permite determinar o delimitador a ser usado. Por exemplo, se seu arquivo é separado por vírgula, você pode colocar "," após o -s. A opção -t exibe os dados em um formato tabular.
Separadores de Saída
Até agora, este exemplo mostrou como trabalhar com o delimitador de um arquivo de entrada, mas e os dados quando ele é exibido na tela.
O padrão do Linux é dois espaços, mas talvez você queira usar dois dois pontos em vez disso. O comando a seguir mostra como especificar um separador de saída:
coluna -s "|" -para"::"
Quando usado com o arquivo da tabela de classificação, o comando produz a seguinte saída:
pos :: equipe :: pld :: pts 1 :: leicester :: 31 :: 66 2 :: tottenham :: 31 :: 61 3 :: arsenal :: 30 :: 55 4 :: cidade do homem :: 30 :: 51 5 :: presunto ocidental :: 30 :: 50 6 :: homem utd :: 30 :: 50 7 :: southampton :: 31 :: 47 8 :: stoke city :: 31 :: 46 9 :: liverpool :: 29 :: 44 10 :: Chelsea :: 30 :: 41
Preencha linhas antes de colunas
Há outro switch que não é particularmente útil, mas está incluído aqui para ser completo. A opção -x, quando usada com a opção -c, preenche as linhas antes das colunas.
Então, o que isso significa? Veja o seguinte exemplo:
coluna -c100 leaguetable
A saída disso seria a seguinte:
pos | team | pld | pts 3 | arsenal | 30 | 55 6 | homem utd | 30 | 50 9 | liverpool | 29 | 44 1 | leicester | 31 | 66 4 | cidade de man | 30 | 51 7 | southampton | 31 | 47 10 | Chelsea | 30 | 41 2 | tottenham | 31 | 61 5 | presunto ocidental | 30 | 50 8 | stoke cidade | 31 | 46
Como você pode ver, ele desce primeiro e depois atravessa.
Agora olhe este exemplo:
coluna -c100 -x leaguetable
Desta vez, a saída é a seguinte:
pos | team | pld | pts 1 | leicester | 31 | 66 2 | tottenham | 31 | 61 3 | arsenal | 30 | 55 4 | homem cidade | 30 | 51 5 | presunto ocidental | 30 | 50 6 | homem utd | 30 | 50 7 | southampton | 31 | 47 8 | stoke city | 31 | 46 9 | liverpool | 29 | 44 10 | Chelsea | 30 | 41
Os dados passam pela tela e depois para baixo.
Outros interruptores
Os únicos outros switches disponíveis são os seguintes:
coluna -V
Isso exibe a versão da coluna instalada no seu computador.
coluna --help
Isso exibe a página de manual para a janela do terminal.