У меня есть большой текстовый файл, содержащий несколько символов Unicode, которые приводят к сбою LaTeX. Как я могу найти символы, отличные от ASCII, в файле с sed и т.п. В Linux bash?
Как искать символы, отличные от ASCII, с помощью инструментов bash?
Ответ 1
Try:
nonascii() { LANG=C grep --color=always '[^ -~]\+'; }
Что можно использовать как:
printf 'ŨTF8\n' | nonascii
Внутри []
^
означает "не". Таким образом, [^ -~]
означает символы не между пробелами и ~. Таким образом, исключая контрольные символы, это соответствует символам без символов ASCII и является более переносимой, хотя и менее точной версией [^\x00-\x7f]
ниже. \+
означает 1 or more
и получит многобайтовые символы, чтобы иметь цвет, показанный вокруг полного символа (ов), а не вкрапленный в каждый байт, таким образом, развращая многобайтную последовательность
Ответ 2
Попробуйте выполнить следующую команду:
grep -P '[^\x00-\x7f]' file