Назад | Перейти на главную страницу

Grep - Ищет непечатаемые символы ascii или символы более высокого диапазона

Мы столкнулись с проблемой, когда кто-то скопировал строку откуда-то в одном из XML-файлов метаданных, который содержал символы ascii 239 (0xef), 191 (0xbf), 189 (0xbd)

Мы исправили проблему в известном файле, но я хотел бы проверить, существует ли аналогичная проблема в любых других файлах xml. Следующая команда ничего не нашла

grep '[^[:print:]]' <filename>

Следующая команда выглядит многообещающей, но она добавляет другие символы, такие как «<» и «/» и т. Д.

grep -e "\W" <filename>

Поскольку это xml-файл, а данная строка является текстом элемента, я не могу использовать параметр -v для grep.

grep $'\xef' <filename>

Вышеупомянутая команда помечает символ, но слишком специфична, чтобы просмотреть 30 000 лишних файлов и найти проблему.

Можно ли использовать команду grep для поиска проблемных символов выше. Для проблемной строки большинство записей являются названиями компаний и вряд ли содержат странные символы ascii.