サイズが500MBのファイルがあります。ASCII 以外の文字が含まれています。Unixコマンドを使用してそれらの文字を見つけたいだけです。行番号と各行の位置を取得する方が良いかもしれません。
ありがとう :)
サイズが500MBのファイルがあります。ASCII 以外の文字が含まれています。Unixコマンドを使用してそれらの文字を見つけたいだけです。行番号と各行の位置を取得する方が良いかもしれません。
ありがとう :)
他の解決策で与えられた答えを使用しますが、に追加-n
してgrep
ください。
変ですよね。UNIXユーティリティのコマンドラインオプションの荒野をナビゲートするよりも、簡単で汚いCをコーディングする方が速い場合があります:-)
#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範囲外の文字の行番号とその行内の文字位置の両方が得られます。