Filed Under (FreeBSD) by Alfredo Tomio Jr on October-25-2007

Pessoal,

Há uns dias atras precisei extrair de centenas de arquivos compactados [.tar.gz] apenas os arquivos chamados index2.php, cada pacote tem pelo menos 30 subpastas com tais arquivos dentro, logo me encontrei com a tarefa de descompactar 300 arquivos .tar.gz :( e retirar deles os arquivos index2.php. A solucao encontrada foi a combinaçao do proprio comando tar com o shell Bash, é claro tudo isso rodando no FreeBSD :

ls -l /home/nick/*.tar.gz | awk ‘{ print $9 }’ | while read files ; do tar –include=*index2.php -zxvf $files ; done

Usei o awk para filtrar a saida do comando ls -l, trazendo somente o nome do arquivo, e criei um loop atraves do while para executar o tar -zxvf com o argumento –include=*index.php que como o nome ja fala, somente inclui o *index2.php para ser extraido.

Uso muito o loop while para inclusive apagar, concatenar um ´nada´ nos arquivos de logs:

ls -l /var/logs/meus_log_files.log | awk ‘{ print $9 }’ | while read files ; do : > $files ; done

Espero ter ajudado!



Post a comment
Name: 
Email: 
URL: 
Comments: