Como converter pastas com arquivos .arch e consolidar em um único arquivo .csv

Para juntar vários arquivos .arch de várias pastas em um único arquivo CSV e executar o processo para várias pastas de entrada e destinos diferentes, você pode criar um script mais avançado que aceite argumentos de entrada e saída múltiplos. Aqui está um exemplo de como você pode fazer isso:

#!/bin/bash

# Verifica se o número de argumentos está correto
if [ $# -lt 2 ]; then
    echo "Uso: $0 pasta_de_logs pasta_de_saida"
    exit 1
fi

# Armazena os argumentos em variáveis
pasta_logs="$1"
pasta_saida="$2"
arquivo_saida="$pasta_saida/merged_logs.csv"

# Verifica se a pasta de logs existe
if [ ! -d "$pasta_logs" ]; then
    echo "Pasta de logs não encontrada: $pasta_logs"
    exit 1
fi

# Cria a pasta de saída se não existir
mkdir -p "$pasta_saida"

# Cabeçalho para o arquivo CSV
echo "Data,Hora,IP,URL,Ação" > "$arquivo_saida"

# Loop através dos arquivos .arch nas subpastas
for arquivo in $(find "$pasta_logs" -name "*.arch"); do
    while IFS='|' read -r data hora ip url acao; do
        # Concatena os campos com vírgulas e escreve no arquivo de saída
        echo "$data,$hora,$ip,$url,$acao" >> "$arquivo_saida"
    done < "$arquivo"
done

echo "Conversão concluída. Arquivo CSV gerado: $arquivo_saida"

Neste exemplo, você deve fornecer a pasta que contém os arquivos .arch como o primeiro argumento e, em seguida, fornecer uma lista de pastas de saída separadas por espaços onde deseja salvar os arquivos CSV resultantes.

Salve esse script em um arquivo, torne-o executável com chmod +x nome_do_script.sh e execute-o:

./script.sh pasta_de_logs pasta_de_saida_1 pasta_de_saida_2 …

O script processará os arquivos .arch na pasta de logs e criará arquivos CSV nas pastas de saída especificadas. Lembre-se de que este é um exemplo avançado e pode precisar de ajustes para se adequar ao formato real dos arquivos .arch e às suas necessidades específicas. Certifique-se de fazer backups dos arquivos originais antes de executar o script.

CATEGORIES:

Software Livre

Tags:

Comments are closed