Подтвердить что ты не робот

Как искать символы, отличные от ASCII, с помощью инструментов bash?

У меня есть большой текстовый файл, содержащий несколько символов Unicode, которые приводят к сбою LaTeX. Как я могу найти символы, отличные от ASCII, в файле с sed и т.п. В Linux bash?

4b9b3361

Ответ 1

Try:

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

Что можно использовать как:

printf 'ŨTF8\n' | nonascii

Внутри [] ^ означает "не". Таким образом, [^ -~] означает символы не между пробелами и ~. Таким образом, исключая контрольные символы, это соответствует символам без символов ASCII и является более переносимой, хотя и менее точной версией [^\x00-\x7f] ниже. \+ означает 1 or more и получит многобайтовые символы, чтобы иметь цвет, показанный вокруг полного символа (ов), а не вкрапленный в каждый байт, таким образом, развращая многобайтную последовательность

Ответ 2

Попробуйте выполнить следующую команду:

grep -P '[^\x00-\x7f]' file