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줄에서 쉼표로 구분된 필드 수를 계산합니다. 각 줄에 2개 이상의 필드가 있고 파일에 2개 이상의 줄이 있으며 처음 10줄(또는 10줄 미만인 경우 전체 파일)의 번호가 동일한 경우 파일이 CSV 파일로 인식됩니다. 필드의.
다음 옵션을 사용하여 CSV 감지를 비활성화할 수 있습니다 -e
.
file -e csv -- *.tex