Precisa de ajuda no shell script - gunzip e comando de arquivo

1

Isso está no Ubuntu 12.04. Eu tenho um aplicativo baseado em webkit personalizado onde "navegador" salva monte de arquivos de cache. Ao triar os problemas, tenho que inspecionar o cache. O diretório de cache contém muitos arquivos de diferentes tipos sem nenhuma extensão de arquivo. Alguns desses arquivos são compactados e alguns deles não são. O objetivo final é inspecionar o conteúdo de arquivos de texto como javascript e css.

Eu estou tentando escrever um script de shell que pode "detectar" que o arquivo é um arquivo compactado e expandir o arquivo. Enfrentando dois problemas particularmente

  1. Verificando a saída do comando "file". Isso eu comecei a trabalhar com o status de verificação do comando grep. Não tenho certeza se esta é a melhor maneira de fazer.
  2. gunzip não gosta de arquivos sem extensão. Como eu digo ao gzip para expandir o arquivo sem extensão. Tentei "-S" bandeira, mas não funcionou estou preso aqui.

Se isto (usando comandos grep e file) não for o melhor caminho, por favor sugira também uma alternativa.

No exemplo a seguir, o script de shell deve expandir automaticamente 1077572923. Qualquer extensão ou nenhuma extensão fará no arquivo expandido.

Saída do comando ls -l

-rw------- 1 <user> <user>  213 Apr 28 14:19 1011858703
-rw------- 1 <user> <user>  364 Apr 28 14:19 1040171657
-rw------- 1 <user> <user>  66K Apr 28 14:19 1077572923

E o arquivo * mostra a saída como

1011858703: GIF image data, version 89a, 13 x 13
1040171657: GIF image data, version 89a, 22 x 19
1077572923: gzip compressed data, from FAT filesystem (MS-DOS, OS/2, NT)
    
por user871199 28.04.2014 / 23:55

1 resposta

2

zgrep -e "the regexp you search" *

poderia ser a resposta. O zgrep faz a descompactação para você, se necessário, deixando os arquivos intocados e executa o grep.

    
por 29.04.2014 / 00:20