2013-05-24 20 views
2

Mac OS X 컴퓨터에서 처리해야하는 PDF 파일을 Windows에서 생성 한 텍스트 파일이> 5000 개를 초과했습니다. 나는 그들 모두에서 개행을 수정하고 UTF-16LE에서 UTF-8로 인코딩을 변환하기 위해 dos2unix을 실행한다.Mac OS X에서 바이너리로 나타나는 텍스트 파일

4949 건 모두 괜찮습니다. 그러나 320 파일의 경우 dos2unix는 실행 파일이 바이너리 파일이라고 말하는 것을 건너 뜁니다.

이것은 건너 뛴 파일 320 개와 다른 파일의 텍스트에 대해 data을 제공하는 file -c과 일치합니다. 그러나 그들은 육안 검사의 텍스트입니다 ...

320을 어떻게 수리 할 수 ​​있습니까? 처음에는 BOM이 있다고 의심했지만 문제가없는 파일에도 나타났습니다.

0000000 ff fe 3d 00 20 00 70 00 61 00 67 00 65 00 20 00 
0000010 31 00 20 00 3d 00 0a 00 0d 00 0d 00 0a 00 

모든 힌트 :

또한, 데이터 및 텍스트 파일을 모두 시작? 미리 감사드립니다.

답변

0

dos2unix --help에 따르면 --forcedos2unix에 전달하면 "이진 파일을 강제 변환"할 수 있습니다. 따라서 셸에서 건너 뛴 파일이 320 개 뿐인 디렉토리 내부에서는 dos2unix --force *을 입력 할 수 있습니다.

+0

로리, 고마워.하지만이 파일은 내가 처리 할 수없는 다른 왜곡 된 파일을 생성 할 것이다. – agaved

0

dos2unix (6.0.3)의 최신 버전을 사용해보십시오. 첫 번째 이진 기호의 줄 번호를 인쇄합니다. 이것은 문제를 분석하는 데 도움이 될 수 있습니다. 나는 것을 발견했다

+0

버전 6.0.4-beta는 이진 기호의 값도 인쇄합니다. http://waterlan.home.xs4all.nl/dos2unix.html에서 베타 버전을 다운로드하십시오. –

2

안부, 때로는 텍스트 파일을 인쇄 할 수없는 ASCII 문자가 포함되어 있습니다. 이 경우 파일이 "텍스트"파일 임에도 불구하고 dos2unix는 파일이 바이너리라고 생각합니다.

tr -cd '\11\12\15\40-\176' < file.txt 

이 기본 명령입니다 그 인쇄 할 수없는 문자와 출력을 표준 출력으로 새로운 ASCII 깨끗한 텍스트를 정리합니다 :이 경우, 당신과 같은 tr 명령을 사용할 수 있습니다. 실제로 파일에 파일로이 출력, 단지 파이프 출력을 저장하려면 :

tr -cd '\11\12\15\40-\176' <file.txt> newfile.txt 

지금 newfile.txt 당신이 dos2unix을 실행할 수있는 텍스트 파일입니다.

보체는 (즉, -c) 문자열 '\11\12\15\40-\176'의 의미가있는 해당 문자열에 정의 된 문자 만 tr 명령 스트립 아웃 모든 :

  • 진수 \ 11 : 탭
  • 진수 \ (12) : 새로운 라인
  • 진수 \ 15 : 캐리지 리턴
  • 진수 \ 40 \ 176 : 모든 좋은/일반 키보드 문자