いくつかのファイルを持っています(Jupyterノートブック、.ipynb
)テキストファイルです。これらすべてには、いくつかのLaTeXマークアップが含まれています。しかし、file
を実行すると、次のようになります。
$ file nb_*
nb_1.ipynb: ASCII text
nb_2.ipynb: ASCII text
nb_3.ipynb: ASCII text, with very long lines
nb_4.ipynb: LaTeX document, ASCII text, with very long lines
nb_5.ipynb: text, with very long lines
file
はこれらをどのように区別しますか?すべてのファイルを同じタイプにしたいと思います。
(ファイルが同じタイプである必要があるのはなぜですか?私はファイルを共有するためにオンラインシステムにアップロードしています。システムはそれらを何らかの方法で分類し、異なる方法で処理します。これを変更する可能性はありません。プラットフォームがfile
またはおそらく-を使用していると思います libmagic 内部的に、これを回避したいと思います。)
ファイルタイプの認識は、いわゆるmagicパターンによって駆動されます。 分析用のマジックファイルTeX ファミリのソースコードには、ファイルがLaTeX。各一致には、強度が割り当てられます。 g。 \begin
の場合は15、\chapter
の場合は18。これにより、それらの名前で独自のマクロを定義することがある、Plain TeXまたはConTeXt文書の誤分類などの誤検知に対するヒューリスティックがより堅牢になります。
file
でファイルをLaTeXとして分類するように見える文字列が1つ見つかりました。
$ cat text
a
b
$ cat latex
a
\begin
b
$ file text latex
text: ASCII text
latex: LaTeX document, ASCII text
したがって、少なくともテキストとして分類されているファイルにいくつかの環境を追加することで、すべてのファイルを同じタイプにすることができます。