Se è stato installato java, è possibile utilizzare lo strumento gratuito Apache Tika per analizzare i metadati di un file.
installazione dopo il download:
alias tika='java -jar /opt/java_shared/tika/tika-app-1.7.jar'
analizzare un file (lento, richiede ~ 5 secondi)
tika -m chroma-1.15.tar.bz2
Content-Length: 2690725
Content-Type: application/x-bzip2
X-Parsed-By: org.apache.tika.parser.DefaultParser
X-Parsed-By: org.apache.tika.parser.pkg.CompressorParser
resourceName: chroma-1.15.tar.bz2
Un altro esempio:
echo "hi there" > notazipfile.zip
tika -m notazipfile.zip
Content-Encoding: ISO-8859-1
Content-Length: 9
Content-Type: text/plain; charset=ISO-8859-1
X-Parsed-By: org.apache.tika.parser.DefaultParser
X-Parsed-By: org.apache.tika.parser.txt.TXTParser
resourceName: notazipfile.zip
C'è una pagina di aiuto:
tika --help
lista lunga:
tika --list-supported-types | grep -C 3 bzip2
application/x-bzip
supertype: application/octet-stream
parser: org.apache.tika.parser.pkg.CompressorParser
Anche in questo caso: Probing file di grandi dimensioni può richiedere del tempo.
Nota esiste un sito web in cui qualcuno ha iniziato a creare un'interfaccia R, ma questa pagina web è a partire dal 2012, e sembra essere inattivo: https://r-forge.r-project.org/projects/r-tika/
In generale non è possibile stabilire se un file è compresso (o addirittura affatto quale formato è in). Tutto quello che puoi fare è testare i modelli di byte noti all'inizio del file, ma questo non è davvero più affidabile di controllare l'estensione del file. –
Perché vuoi sapere questo in 'R'? Qual è il tuo obiettivo finale? –
fread() dal pacchetto del bioconduttore data.table non accetta file compresso come argomento di input –