2010-12-07 3 views
1

У меня есть размер 500 МБ. В нем есть некоторые символы не-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.

 Смежные вопросы

  • Нет связанных вопросов^_^