특정 파일 형식 테스트

특정 파일 형식 테스트

후속작입니다정상적으로 보이는 텍스트 파일(파일에서 ASCII Pascal 프로그램 텍스트로 감지됨)

file아직도 믿기지 않는 것 같습니다 .

특정 파일에 encoding/format1및 가 모두 있는 것으로 감지될 수 있는 것 같습니다 encoding/format2. file하지만 encoding/format1제약 조건도 충족하는지 확인해야 합니다 encoding/format2.

  • 이를 수행할 수 있는 방법이 있습니까?
  • "이 파일이 ASCII 영어 텍스트 규칙을 따르는지 확인하세요(또는다른 인코딩)", 대답은 "예"입니까, "아니오"입니까?

답변1

--keep-going어쩌면 ( -k) 옵션을 사용할 수도 있습니다 file. 더 일치하는 형식을 작성합니다.

관련된매뉴얼 페이지이 옵션에 대한 설명:

첫 번째 게임에서 멈추지 말고 계속 진행하세요. 후속 일치 항목 앞에는 "\012-" 문자열이 추가됩니다. (개행 문자를 원하면 -r 옵션을 참조하십시오.) 가장 강력한 매직 모드(-l 옵션 참조)가 먼저 옵니다.

답변2

두 번째 질문에 대답하세요.조펠은 이미 첫 번째 질문에 답변했습니다.

  • "이 파일이 ASCII 영어 텍스트(또는 다른 인코딩)에 대한 규칙을 따르는지 확인하세요"라고 질문하여 "예" 또는 "아니요"로 대답하도록 할 수 있는 방법이 있습니까?

-e/ 옵션을 참조하세요 --exclude. ~에서file(1):

-e, --제외 테스트 이름

지정된 테스트 제외테스트 이름파일 형식을 결정하기 위해 수행된 테스트 목록에서.

[...]

  • soft Consults magic files

이러한 매직 파일은 Pascal 보고를 담당하므로 -e soft이것으로 충분합니다. 또한 활성화된 상태로 유지하는 한 목록에서 다른 테스트를 제외해 볼 수도 있습니다 ascii.

예/아니요 테스트의 경우 -b("짧은", 즉 파일 이름 없음)과 함께 사용하고 --mime-encoding인코딩만 출력합니다. 그런 다음 간단한 문자열 비교를 수행합니다.

if [ "$(file -b --mime-encoding -e soft $file)" == "us-ascii" ] ; then
  echo yes
else
  echo no
fi

관련 정보