LaTeXソースファイルが複数あり、すべて同じ構造を持ち、すべてUnixスタイルの行末を持ち、すべてUTF-8、すべてほぼ同じサイズ(1-2KB)、すべてインデントにスペースを使用します。それらはより大きなドキュメント内に含まれており、各ファイルはドキュメントの別々のセクションをカバーし、各セクションは同じレイアウトを持っています(したがって、各ファイルは同じ構造を持ち、基本的に同じLaTeXコマンド、単に異なるテキストコンテンツを持ちます)。 )。多くのLaTeXコマンドを直接含む開始/終了。今奇妙なことは次のとおりです。
$ file *.tex
file1.tex: LaTeX document, Unicode text, UTF-8 text
file2.tex: CSV text
これはほんのわずかな抜粋であり、CSVとLaTeXの検索は完全にランダムであり、CSVの検索頻度はわずかに低いが(CSV 40%、LaTeX 60%)タイプは各ファイルで再現可能です。
CSV検出ファイルで一部の形式と内容を変更しようとしましたが、まだCSVとして検出されます。
ここで何が起こっているのでしょうか?
答え1
ほとんどのファイルタイプの検出はfile
「魔法の」値に基づいています。一束のファイルから; TeXファイル自己テスト秘密のセットがあります。。
ただし、CSVファイルは異なる方法で処理されます。file
専用ルーチンがあります。。ファイルの最初の10行からカンマ区切りのフィールド数を計算します。各行に複数のフィールドがあり、ファイルに複数の行があり、最初の10行(または10行未満の場合はファイル全体)の番号が同じ場合、ファイルはCSVファイルとして認識されます。フィールドの。
次のオプションを使用してCSV検出を無効にできます-e
。
file -e csv -- *.tex