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