Introdução
A coluna de texto (text columnization) é uma técnica poderosa no Linux que permite organizar e exibir dados em um formato tabular estruturado. Ao trabalhar com arquivos de texto simples contendo dados delimitados, o conteúdo pode ser difícil de ler sem a formatação adequada. O comando column no Linux resolve este problema transformando texto simples em colunas formatadas de forma organizada.
Este laboratório irá guiá-lo através do domínio do utilitário column no Linux. Você aprenderá como exibir o conteúdo de arquivos em um formato tabulado, tornando os dados mais fáceis de ler e analisar. Essas habilidades são essenciais para o processamento e visualização de dados no ambiente da linha de comando.
Entendendo os Fundamentos do Comando Column
Nesta etapa, aprenderemos como usar o comando column para formatar texto em colunas alinhadas, tornando os dados mais fáceis de ler e interpretar.
O comando column é um utilitário no Linux que formata sua entrada em múltiplas colunas. Isso é particularmente útil ao lidar com dados que possuem uma estrutura natural, mas são armazenados em formato de texto simples.
Criando um Arquivo de Dados de Amostra
Vamos começar criando um arquivo de texto simples que contenha dados que queremos formatar. Criaremos um arquivo chamado powers_list.txt no diretório ~/project contendo nomes de superpoderes e seus respectivos nomes de heróis, separados por dois pontos.
Navegue para o diretório do projeto:
cd ~/project
Agora, crie o arquivo de amostra usando o comando echo com a opção -e, que permite a interpretação de sequências de escape com barra invertida (como \n para nova linha):
echo -e "Telekinesis:Jane\nInvisibility:John\nSuper Strength:Max" > ~/project/powers_list.txt
Vamos examinar o conteúdo do arquivo que acabamos de criar:
cat ~/project/powers_list.txt
Você deve ver uma saída como esta:
Telekinesis:Jane
Invisibility:John
Super Strength:Max
Esses dados são formatados com dois pontos (:) como delimitador entre o nome do superpoder e o nome do herói. O formato não é muito legível como está.
Usando o Comando Column para Formatação
Agora, vamos usar o comando column para transformar esses dados em um formato mais legível:
column -t -s ':' ~/project/powers_list.txt
Neste comando:
columné o utilitário que estamos usando- A opção
-tdiz ao comando para criar uma saída semelhante a uma tabela -s ':'especifica que o delimitador (separador) em nosso arquivo de entrada é dois pontos~/project/powers_list.txté o caminho para o nosso arquivo de entrada
Após executar este comando, você deve ver a seguinte saída:
Telekinesis Jane
Invisibility John
Super Strength Max
Observe como os dados agora estão bem alinhados em colunas, tornando-os muito mais fáceis de ler. O comando column determinou automaticamente a largura de cada coluna com base no conteúdo e alinhou tudo de acordo.
Este uso básico do comando column demonstra seu poder na formatação de dados de texto para melhor legibilidade.
Formatação Avançada com Column Usando um Script Shell
Nesta etapa, criaremos um script shell que facilita a coluna de arquivos de texto com diferentes delimitadores. Essa abordagem permite maior flexibilidade e eficiência ao trabalhar com vários formatos de dados.
Compreendendo Scripts Shell
Um script shell é um arquivo contendo comandos que o shell pode executar. Ele permite automatizar tarefas combinando múltiplos comandos e adicionando lógica. Neste caso, criaremos um script que simplifica o processo de coluna de arquivos.
Criando o Script Columnize
Vamos criar um script chamado columnize.sh no diretório ~/project. Este script receberá dois argumentos: um nome de arquivo e um caractere delimitador.
Primeiro, navegue para o diretório do projeto, se você ainda não estiver lá:
cd ~/project
Agora, crie o arquivo de script:
touch columnize.sh
Em seguida, abra o arquivo com o editor de texto nano:
nano columnize.sh
Adicione o seguinte conteúdo ao arquivo:
#!/bin/bash
## A script to columnize text files
## Check if the correct number of arguments are provided
if [ "$#" -ne 2 ]; then
echo "Usage: $0 <filename> <delimiter>"
echo "Example: $0 data.txt :"
exit 1
fi
## Extract arguments
FILENAME=$1
DELIMITER=$2
## Check if the file exists
if [ ! -f "$FILENAME" ]; then
echo "Error: File '$FILENAME' does not exist"
exit 1
fi
## Format and output the content
column -t -s "$DELIMITER" "$FILENAME"
Para salvar o arquivo no nano, pressione Ctrl+O, depois Enter, e para sair do nano, pressione Ctrl+X.
Vamos detalhar o que este script faz:
- A primeira linha (
#!/bin/bash) diz ao sistema para usar o shell bash para executar o script. - Verificamos se exatamente dois argumentos foram fornecidos (um nome de arquivo e um delimitador).
- Atribuímos esses argumentos a variáveis para facilitar a referência.
- Verificamos se o arquivo especificado existe.
- Finalmente, usamos o comando
columncom o nome do arquivo e o delimitador fornecidos.
Tornando o Script Executável
Antes de podermos usar nosso script, precisamos torná-lo executável:
chmod +x ~/project/columnize.sh
Usando o Script Columnize
Agora podemos usar nosso script para coluna arquivos de texto. Vamos usá-lo com nosso arquivo powers_list.txt existente:
~/project/columnize.sh ~/project/powers_list.txt :
Você deve ver a seguinte saída:
Telekinesis Jane
Invisibility John
Super Strength Max
Vamos criar outro arquivo de amostra com um delimitador diferente para testar a flexibilidade do nosso script:
echo -e "Apple,Red,Fruit\nCarrot,Orange,Vegetable\nBlueberry,Blue,Fruit" > ~/project/foods.txt
Agora use nosso script com este novo arquivo e uma vírgula como delimitador:
~/project/columnize.sh ~/project/foods.txt ,
Você deve ver uma saída como esta:
Apple Red Fruit
Carrot Orange Vegetable
Blueberry Blue Fruit
Nosso script coluna com sucesso os dados em ambos os arquivos, usando diferentes delimitadores. Isso demonstra a flexibilidade e o poder de combinar scripts shell com o utilitário column.
Trabalhando com Diferentes Formatos de Arquivo
Nesta etapa, exploraremos como usar o comando column com vários formatos de arquivo e delimitadores. Isso ajudará você a entender a versatilidade do utilitário column e como ele pode ser aplicado a diferentes tipos de dados.
Trabalhando com Arquivos CSV
Arquivos CSV (Valores Separados por Vírgula - Comma-Separated Values) são um formato comum para armazenar dados tabulares. Vamos criar um arquivo CSV mais complexo e usar o comando column para formatá-lo.
Primeiro, crie um novo arquivo CSV:
cd ~/project
echo -e "Name,Age,Occupation,City\nAlex,28,Engineer,Boston\nSamantha,35,Teacher,Chicago\nMohamed,42,Doctor,New York\nLin,31,Artist,San Francisco" > employees.csv
Vamos examinar o conteúdo deste arquivo:
cat employees.csv
Você deve ver:
Name,Age,Occupation,City
Alex,28,Engineer,Boston
Samantha,35,Teacher,Chicago
Mohamed,42,Doctor,New York
Lin,31,Artist,San Francisco
Agora, vamos usar o comando column para formatar este arquivo CSV:
column -t -s ',' employees.csv
A saída deve ser semelhante a esta:
Name Age Occupation City
Alex 28 Engineer Boston
Samantha 35 Teacher Chicago
Mohamed 42 Doctor New York
Lin 31 Artist San Francisco
Observe como o comando column organizou os dados em colunas alinhadas, tornando-os muito mais fáceis de ler.
Trabalhando com Arquivos TSV
TSV (Valores Separados por Tabulação - Tab-Separated Values) é outro formato comum para dados tabulares. Vamos criar um arquivo TSV e formatá-lo usando o comando column.
Crie um arquivo TSV:
echo -e "Product\tPrice\tCategory\nLaptop\t999.99\tElectronics\nBook\t12.50\tMedia\nChair\t149.50\tFurniture" > products.tsv
Vamos olhar o conteúdo:
cat products.tsv
Você deve ver:
Product Price Category
Laptop 999.99 Electronics
Book 12.50 Media
Chair 149.50 Furniture
Agora, formate-o usando o comando column. Como as tabulações são o delimitador padrão para o comando column, não precisamos especificar um delimitador:
column -t products.tsv
A saída deve ser semelhante a:
Product Price Category
Laptop 999.99 Electronics
Book 12.50 Media
Chair 149.50 Furniture
Usando Nosso Script com Diferentes Arquivos
Agora, vamos usar nosso script columnize.sh com esses diferentes arquivos:
Para o arquivo CSV:
~/project/columnize.sh employees.csv ,
Para o arquivo TSV:
~/project/columnize.sh products.tsv $'\t'
Observação: No segundo comando, estamos usando $'\t' para representar um caractere de tabulação. Esta é uma sintaxe especial no bash que nos permite incluir caracteres especiais como tabulações.
Ambos os comandos devem produzir uma saída bem formatada, demonstrando a flexibilidade do nosso script com diferentes formatos de arquivo e delimitadores.
Esta etapa mostrou como o comando column e nosso script podem ser usados para formatar vários tipos de dados tabulares, tornando-os mais legíveis e fáceis de analisar.
Resumo
Neste laboratório, você aprendeu como usar o comando column para organizar e exibir dados em um formato tabular, tornando-o mais fácil de ler e analisar. Aqui está um resumo do que você realizou:
Você aprendeu o uso básico do comando
columncom as opções-te-spara formatar arquivos de texto delimitados.Você criou um script shell (
columnize.sh) que facilita a aplicação da formatação de coluna a qualquer arquivo com qualquer delimitador.Você aplicou essas técnicas a diferentes formatos de arquivo (CSV e TSV), demonstrando a flexibilidade do utilitário
columnpara vários tipos de dados.
Essas habilidades são valiosas para o processamento e análise de dados em um ambiente Linux. A capacidade de formatar e visualizar rapidamente dados de texto é uma ferramenta poderosa para administradores de sistema, analistas de dados e qualquer pessoa que trabalhe com arquivos de texto na linha de comando.
As técnicas que você aprendeu podem ser aplicadas a:
- Análise de arquivos de log
- Gerenciamento de arquivos de configuração
- Extração e transformação de dados
- Visualização rápida de dados estruturados
Ao dominar o comando column e aprender a automatizar seu uso com scripts shell, você adicionou uma ferramenta importante ao seu conjunto de ferramentas de linha de comando Linux.



