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.
Comments are closed