我有一个 500MB 大小的文件。它有一些非ASCII字符。我只想使用 Unix 命令找出这些字符。可能会更好地获取每行的行号和位置。
谢谢 :)
我有一个 500MB 大小的文件。它有一些非ASCII字符。我只想使用 Unix 命令找出这些字符。可能会更好地获取每行的行号和位置。
谢谢 :)
使用其他解决方案中给出的答案,但添加-n
到grep
.
你知道,这很奇怪。有时我发现编写一些快速而肮脏的 C 代码比尝试浏览大量 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 范围之外的任何字符的行号和该行内的字符位置。