Como testar se um arquivo é um arquivo de fonte

1

Eu tenho milhares de páginas da web salvas automaticamente, provenientes de diferentes fontes. Muitas das páginas da Web têm fontes incorporadas em arquivos como * .woff, * .eot, * .ttf e * .svg. Eu gostaria de reduzir o tamanho destes, excluindo todos os arquivos de fonte. Como posso testar se um arquivo é para fontes? É claro que posso encontrar alguns com find . -type f -name *woff . Especialmente, a confusão é possível com arquivos * svg. Um arquivo * svg pode ser um arquivo de fonte como xxxwebfontsxxx.svg ou pode ser uma imagem perfeitamente informativa.

Se não for possível testar os arquivos diretamente, que extensões eu devo excluir? Os arquivos de fontes que eu conheço por extensão são * otf, * ttf, * eot, * woff e alguns * svg podem ser fontes ou não. É possível excluir esses quatro primeiros tipos de arquivo?

    
por Quora Feans 15.03.2015 / 00:22

1 resposta

4

Existe um comando chamado file que faz (bom, mas nem sempre perfeito) adivinha sobre o tipo de arquivo. Uma maneira de usar esse comando poderia ser:

find your_web_pages_directory -type f -name "*.*" -print0 |
  xargs -0 file |
    awk 'BEGIN{FS=": +"}$2~/[Ff]ont/{print $1}' |
      xargs rm --

O comando find procura arquivos comuns com extensões (você pode restringir essa extensão ainda mais se quiser), o programa awk corresponde ao palpite do palpite anterior por file e imprime o nome do arquivo e, finalmente, resultado é removido. Dependendo de quais arquivos você tem em "your_web_pages_directory", pode ser aconselhável primeiro inspecionar a saída do find | xargs pipeline antes de adicionar as partes awk e rm do pipeline.

Nota: O código assume que file reportará algo como "Fonte" ou "fonte" para os arquivos desejados. Se essa não é a string de diagnóstico real, você teria que mudar isso de acordo. Faça alguns testes em arquivos onde você sabe que eles são do tipo que você está pesquisando.

    
por 15.03.2015 / 00:42

Tags