1
resposta

LIDANDO COM ARQUIVOS - LINUX

#!/bin/bash

Definindo o diretório de logs como o diretório pai

LOG_DIR=".."

echo "Verificando logs no diretório $LOG_DIR"

Encontrar arquivos .log e processar um a um (seguro para nomes com espaços)

find "$LOG_DIR" -name "*.log" -print0 | while IFS= read -r -d '' arquivo; do
echo "Processando o arquivo: $arquivo"

Filtra linhas com ERROR e SENSITIVE_DATA - novo arquivo '.filtrado'

grep "ERROR" "$arquivo" > "${arquivo}.filtrado"
grep "SENSITIVE_DATA" "$arquivo" >> "${arquivo}.filtrado"
echo "Linhas com 'ERROR' e 'SENSITIVE_DATA' foram salvas em ${arquivo}.filtrado"

Ocultando dados sensíveis

sed -i 's/User password is .*/User password is REDACTED/g' "${arquivo}.filtrado"
sed -i 's/User password reset request with token .*/User password reset request with token REDACTED/g' "${arquivo}.filtrado"
sed -i 's/API key leaked: .*/API key leaked: REDACTED/g' "${arquivo}.filtrado"
sed -i 's/User credit card last four digits: .*/User credit card last four digits: REDACTED/g' "${arquivo}.filtrado"
sed -i 's/User session initiated with token: .*/User session initiated with token: REDACTED/g' "${arquivo}.filtrado"

echo "Informações sensíveis foram ocultadas em ${arquivo}.filtrado"

done

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta

Oi, High! Como vai?

Agradeço por compartilhar.

Gostei do cuidado com nomes contendo espaços usando find -print0 e while IFS= read -r -d '' arquivo; também é positivo você separar o filtro (grep) da etapa de mascaramento (sed -i) para manter o fluxo claro.

Continue testando e refinando esse fluxo para produção.

Conteúdos relacionados
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!