2010-12-07 2 views
1

파일의 크기가 500MB입니다. ASCII 문자가 아닌 문자가 일부 있습니다. 나는 단지 유닉스 명령을 사용하여 그 문자들을 찾고 싶다. 각 줄마다 줄 번호와 위치를 얻는 것이 낫습니다.ASCII가 아닌 문자를 찾는 유닉스 명령어

감사합니다 :)

+0

답변은 http://stackoverflow.com/questions/3001177/how-do-i-grep-for-non-ascii-characters-in-unix – vpit3833

+0

@ vpit3833에서 찾을 수 있습니다. 익숙하지 않습니다. 유닉스 명령, 나는 그 링크가 아닌 아스키 문자의 라인 번호를 제공하지 않는 것 같아요. 잘못했다면 미안 해요. –

답변

3

the other solution에 주어진 답을 사용하지만, grep-n를 추가합니다.

2

아시다시피, 이상합니다. 그것을 시도하고이 당신에게 줄 번호 및 문자를 모두 줄 것이다

#include <stdio.h> 

int main (void) { 
    size_t ln = 1; 
    size_t chpos = 0; 
    int chr; 
    while ((chr = fgetc (stdin)) != EOF) { 
     if (chr == '\n') { 
      ln++; 
      chpos = 0; 
      continue; 
     } 
     chpos++; 
     if (chr > 127) { 
      printf ("Non-ASCII %02x found at line %d, offset %d\n", 
       chr, ln, chpos); 
     } 
    } 
    return 0; 
} 

:-) UNIX 유틸리티 명령 줄 옵션의 광야를 탐색하는 것보다 때로는 좀 신속하고 더러운 C를 코딩 빠르게 찾을 아스키 범위 밖의 모든 문자의 해당 행 내에서의 위치.