2010-12-07 115 views
1

我有一個文件大小爲500MB。 它有一些非ASCII字符。我只是想用Unix命令找出那些字符。願得到每一行的行號和位置會更好。Unix命令查找非ASCII字符

謝謝:)

+0

你可能會在這裏找到答案http://stackoverflow.com/questions/3001177/how-do-i-grep-for-non-ascii-characters-in-unix – vpit3833 2010-12-07 05:47:28

回答

2

你知道,這很奇怪。有時候我發現它更快地編寫了一些快速和骯髒的溫度比它要嘗試和導航的UNIX實用程序命令行選項曠野:-)

#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; 
} 

這會給你線路號,字符位於該行內的任何ASCII範圍外的字符的位置。