Coluna de Texto no Linux

LinuxBeginner
Pratique Agora

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 -t diz 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:

  1. A primeira linha (#!/bin/bash) diz ao sistema para usar o shell bash para executar o script.
  2. Verificamos se exatamente dois argumentos foram fornecidos (um nome de arquivo e um delimitador).
  3. Atribuímos esses argumentos a variáveis para facilitar a referência.
  4. Verificamos se o arquivo especificado existe.
  5. Finalmente, usamos o comando column com 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:

  1. Você aprendeu o uso básico do comando column com as opções -t e -s para formatar arquivos de texto delimitados.

  2. Você criou um script shell (columnize.sh) que facilita a aplicação da formatação de coluna a qualquer arquivo com qualquer delimitador.

  3. Você aplicou essas técnicas a diferentes formatos de arquivo (CSV e TSV), demonstrando a flexibilidade do utilitário column para 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.