
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 -i
opção on file
para 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/
.