terça-feira, 3 de março de 2015

For + Awk - Parte 2

Problema: Dado um diretório, contendo diversos subdiretórios, que por sua vez contém diversos arquivos compactados e você precisa descompactar os arquivos de alguns destes diretórios.

Alternativa de solução: Vasculhar todos os diretórios, selecionando apenas os subdiretórios que interessam através, por exemplo de um awk.

Exemplo:

for k in $(for i in $(find /dados/ -type d);do for j in $(ls $i/*.gz); do echo $j | awk 'BEGIN{FS="/"}{if ($7 >= "20150106" && $7 <= "20150115"){print $0;}}' ;done; done); do gzip -dc $k; done | gzip > /dados/arquivo_20150106_20150115.txt.gz

Neste exemplo, eu vasculho todos os subdiretórios cujo nome esteja entre 20150106 e 20150115, descompacto estes arquivos e os compacto em uma nova saída.



Nenhum comentário:

Postar um comentário