gunzip vários arquivos para uma pasta específica

1

existe a possibilidade de gunzip vários arquivos em uma pasta?

Eu tenho muitos registros de acesso que preciso extrair da pasta. Coloquei em /var/log/nginx/ e eles são nomeados como access.log.2.gz Mas há um complicado .. Eu preciso de todos os arquivos dessa pasta de um mês específico.

Há um monte de registros de acesso e eu preciso deles extrair no diretório /var/log/nginx/target

Eu já testei

for f in *.gz; do
  STEM=$(access.log. "${f}" .gz)
  gunzip -c "${f}" > /var/log/nginx/target/"${STEM}"
done

Mas não funcionou de todo ..

    
por Delirium 24.06.2016 / 10:27

2 respostas

0

O problema com o seu código, creio eu, é provavelmente o cálculo do STEM. Não é imediatamente claro para mim o formato em que seus arquivos estão ou como você irá agrupá-los, mas tente algo como:

# Find files created within date range:
fromdate="201606010000"
todate="201606302359"
touch -t $fromdate /tmp/fromdate.del
touch -t $todate /tmp/todate.del

# Extract only the desired files to destination, removing the .gz extension
for f in 'find /var/log/nginx/*.gz  -type f -newer $fromdate ! -newer $todate'
do
     zcat $f > /var/log/ngiz/target/${f::-3}
done
    
por 25.06.2016 / 01:43
0

Supondo que você não saiba quais registros contêm junho:

zcat *gz | grep Jun > junelog
    
por 24.06.2016 / 21:58