verifique o arquivo ASCII com o comando de arquivo por script de shell

verifique o arquivo ASCII com o comando de arquivo por script de shell

Com o comando file eu preciso verificar muitos arquivos se eles são ASCII ou outro formato

Às vezes recebo do comando file:

  file1: ASCII English text

E às vezes recebo respostas diferentes do comando de arquivo

  file2: Non-ISO extended-ASCII English text, with very long lines

Eu realmente não tenho certeza se existem outras respostas com sintaxe diferente

Minha pergunta é:

Eu escrevo a seguinte sintaxe ksh para verificar se o arquivo é ASCII, mas não tenho certeza se o

A sintaxe a seguir é a sintaxe ideal para verificar o formato ASCII?

   [[ ` file  $some_file | grep –c ASCII ` = 1 ]] && print "you have ascii file for sure"

Se alguém tiver outra sugestão para verificar o formato ASCII com certeza!, ficarei muito feliz em ver isso

Responder1

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

Responder2

Que tal...

if file -ib "$file" | grep -Eqs '^text/plain(;|$)'; then
    echo "It's text/plain."
fi

Não sei quão comum é --mime-type; se for padrão, use

if file -b --mime-type "$file" | grep -qs '^text/plain$'; then

Alternativamente grep -qs '^text/'para qualquer tipo de texto.

Responder3

Como você está analisando a saída com código, sugiro usar a -iopção on filepara gerarMIMEdigita, em vez disso, strings amigáveis. A saída do tipo MIME é mais regular e isso torna um pouco mais fácil de lidar com o código.

Quanto aos tipos de saída, dê uma olhada emarquivo homemdiz que:

/usr/share/file/magic
    Default list of magic numbers

/usr/share/file/magic.mime
    Default list of magic numbers, used to output  mime types
    when the -i option is specified.

Dê uma olhada nesses arquivos para todos os tipos MIME que ele pode relatar para determinar com quais tipos você se importará ao analisar a saída do file. Suspeito que você só se importará com o fato de o tipo MIME começar com text/.

informação relacionada