Alternativa útil para o comando de arquivo

0

Eu uso a seguinte sintaxe do shell (do meu anterior, respondida pelo - phemient) para verificar se o arquivo é ASCII (text) ou outro

if LC_ALL=C grep -q '[^[:print:][:space:]]' file; then
   echo "file contains non-ascii characters"
   else
     echo "file contains ascii characters only"
fi

o problema é que eu recebo "arquivo contém caracteres não-ascii" (a partir da sintaxe do script de shell), mesmo se o test_file for arquivo ASCII por quê?

Eu também testo o arquivo com o comando file e é isso que eu obtenho

file test_file 
Non-ISO extended-ASCII English text" its also ASCII file 

minha pergunta: como alterar a sintaxe do shell para suportar também o "Texto não ASCII estendido em inglês ASCII"?

então eu vou pegar o print "arquivo contém somente caracteres ascii" do shell script

  remark the solution must be for Linux and solaris

THX

    
por jennifer 27.10.2010 / 13:23

1 resposta

0

Oi eu usaria algo como:

#!/bin/bash
if [[ 'file -b $1' == "ASCII text" ]] ; then
   echo "file contains ascii characters only"
   else
     echo "file contains non-ascii characters"
fi

Parece:

$ filetest.sh 1.txt  
file contains ascii characters only
$ filetest.sh PHOTOS/HPIM0532.jpg  
file contains non-ascii characters
    
por 27.10.2010 / 14:04