%20%E3%81%A8%20Magic(5)%3A%20%E4%BB%96%E3%81%AE%E5%BD%A2%E5%BC%8F%E3%81%AE%E8%AA%AC%E6%98%8E.png)
使えfile
ますmagic
(http://linux.die.net/man/5/magic)他の既知の形式の説明を無視するには?
たとえば、次の形式を説明したいと思います。
- ベッド:http://genome.ucsc.edu/FAQ/FAQformat.html#format1
- パスタ: http://en.wikipedia.org/wiki/FASTA_format
- ...
ただテキストファイルですね
または
これは、マジックナンバーで始まる「ちょうど」gzip圧縮ファイルです。BAM\1
?
どのような例を知っていますか?
マジック形式を使用する代わりに、ファイルをテストするためのカスタムCコードを提供できますか?
答え1
この-m
オプションを使用して代替マジックファイルのリストを指定でき、そのリスト/usr/share/file/magic.mgc
(マイシステム)でコンパイルされたマジックファイルの前に独自のマジックファイルを含めると、そのモードは「グローバル」モードの前にテストされます。コマンドを実行して、オプションが常に透過的に使用されるように関数またはエイリアスを作成できますfile
。
マジックファイルで使用される言語は非常に強力なので、カスタムCエンコーディングに戻す必要はほとんどありません。私がこれをしようとした唯一の時は、HTMLとXMLファイルを一致させるのが難しかった90年代でした。当時は、1つのパターンを解析して<HTML
使用できる柔軟な大文字と小文字の一致を持つ方法がなかったからです< Html
。< html
。 「文字列」モードの修飾子としてCで実装されました。大文字と小文字を無視してスペースを圧縮(オプション)できます。。
これらの変更はCに必要です。そして魔法文書の角色。それ以来、ソースコードが大幅に変更されていない限り、これらのCコードの変更と一致するように常にファイルの規則を変更(または追加提供)する必要がありますfile
。magic
したがって、これを達成するためにマジックファイルを変更しようとし、うまくいかない場合はCコードを再度変更することをお勧めします。
答え2
答え3
-m
マンページのdocumentendはfile(1)
デフォルトでその~/.magic
ファイル(またはコンパイルされたバージョン)を読み取るため、常にそのオプションを使用する必要はありません。~/.magic.mgc
したがって、システム全体/usr/share/magic*
または/etc/magic
。