28

LaTeXをクラッシュさせるいくつかのUnicode文字を含む大きなテキストファイルがあります。Linux bashでsedなどを使用したファイルで非ASCII文字を見つけるにはどうすればよいですか?

4

2 に答える 2

35

試す:

nonascii() { LANG=C grep --color=always '[^ -~]\+'; }

次のように使用できます。

printf 'ŨTF8\n' | nonascii

within[] ^は「ない」という意味です。so[^ -~]は、スペースと ~ の間にない文字を意味します。したがって、制御文字を除いて、これは非 ASCII 文字に一致し、以下のバージョンよりも若干正確ではありませんが、より移植性があり[^\x00-\x7f]ます。と は、各バイトに散在するのではなく、完全な文字の周りに色が表示されるマルチバイト文字を取得することを\+意味し、マルチバイト シーケンスを破損します。1 or more

于 2012-11-28T02:08:57.477 に答える
26

このコマンドを試してください:

grep -P '[^\x00-\x7f]' file
于 2012-11-28T02:00:20.907 に答える