У меня есть размер 500 МБ. В нем есть некоторые символы не-ascii. Я просто хочу узнать эти символы, используя команду Unix. Пусть будет лучше получить номера строк и позиции в каждой строке.Команда Unix для поиска символов не-ascii
Спасибо :)
У меня есть размер 500 МБ. В нем есть некоторые символы не-ascii. Я просто хочу узнать эти символы, используя команду Unix. Пусть будет лучше получить номера строк и позиции в каждой строке.Команда Unix для поиска символов не-ascii
Спасибо :)
Используйте ответ, данный в the other solution, но добавить -n
к grep
.
Вы знаете, это странно. Иногда я нахожу это быстрее, чтобы закодировать некоторые быстрые и грязные С чем пытаться ориентироваться в пустыне опций командной строки утилиты 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.
Вы можете найти ответ здесь, на http://stackoverflow.com/questions/3001177/how-do-i-grep-for-non-ascii-characters-in-unix – vpit3833 2010-12-07 05:47:28