Баш обнаруживает искусство ascii

Для сценария bash существует ли простой способ определить, содержит ли текст ascii art?

Пример искусства ascii: введите описание изображения здесь

One Solution collect form web for “Баш обнаруживает искусство ascii”

Во-первых, есть проблема: вы не упомянули кодировку в своем вопросе, что заставляет меня думать, что вы не знаете, как это влияет на это. Кодировки символов определяют значение отдельных байтов. Это означает, что нам нужно начать с небольшого урока истории, и ответ на вопрос, легко ли это или нет, уже «нет».

Ваш пример технически не ASCII. Расширенные символы, которые вы обсуждаете, впервые появились в IBM Code Page 437 (известные под разными названиями, такими как CP437, OEM 437 и IBM437), но они не были частью более часто используемых наборов символов Интернета (например, ISO 8859-1 AKA Latin-1), пока UTF-8 не станет стандартом де-факто. UTF-8 привел этих персонажей обратно в виде элементов блока и символов рисования . Следует отметить, что блоки Unicode, о которых я упоминал, содержат символы, которые первоначально не присутствовали в CP437, что делает поддержку шрифтов пятнистой.

При таком понимании мы можем разбить это на два шага:

  1. Определите, какую кодировку должен интерпретировать поток байтов.
  2. Определите, какие комбинации байтов вам «интересны».

Как уже указывали другие, невозможно обнаружить, что обычно используемые текстовые символы (т.е. в основном что-либо в кодировке Latin-1, включая 7-битный набор ASCII) должны интерпретироваться как художественные. Есть диапазоны символов, которые вы можете проявлять больше, чем обычно, из-за гораздо большей вероятности того, что они используются в искусстве.

Ради здравого смысла каждого, я собираюсь предположить, что мы обсуждаем UTF-8 здесь. Раскрывая приведенный вами пример, мы видим символы из следующих блоков Unicode:

  • Геометрические фигуры
  • Блочные элементы (о которых мы говорили ранее)

Отсюда все, что касается реализации. Вам нужно изучить каждый символ и определить, попадают ли они в блок Unicode, который вас интересует. Выполнение этого вручную без опыта может быть сложным, поскольку UTF-8 является многобайтовой кодировкой: это означает, что отдельные символы вне основного 7-битного набора ASCII представлены более чем одним байтом. Использование программного обеспечения, которое поддерживает UTF-8, значительно упростит это. Я не рекомендую это использовать с помощью bash поскольку подразумевается название вашего вопроса.

  • Strip // Комментарии из файлов
  • Как отображать вывод команды во время ее разбора?
  • Извлечение данных между двумя сопоставленными шаблонами в двоичном файле
  • bash работает, но дает ошибки: «
  • сопоставление sed шаблонов с удалением по строке
  • Создание сочетаний элементов из вектора для ввода в качестве входных данных в программе
  • как извлечь некоторые строки в файл данных по сравнению с другим файлом данных? (слияние)
  • Терминал Ubuntu закрывается после запуска скрипта
  • Аргументы сценария Bash не передаются функции?
  • BASH - команда не найдена - LVM над скриптом автоматизации LUKS
  • Проверка поддержки массива оболочкой
  • Interesting Posts

    простой сценарий цикла для построения подсети ipv6

    xen + libvirt разделяют диски между VM на разных хостах

    Сжатие / архивирование, которое сохраняет разрешения и владельца файла?

    Как добавить две переменные, переданные в оболочке, которая возвращает число целых чисел?

    Разрешено авторизацию скрипта Systemd Fedora 25

    Помощь в поиске файлов для шаблонов регулярных выражений, рекурсивно, со специализированным выпуском

    Как отправить нажатие клавиш (F5) с терминала на процесс?

    Демон OpenVPN не использует файл конфигурации

    Проблема с grub-mkconfig в установке Arch Linux: grub-mkconfig не может подключиться к lvmetad

    Безопасно ли менять владельца системных папок OS X?

    Использовать оболочку, не установленную на удаленном компьютере

    Добавьте новые шаги пользователя для Oracle Linux 5

    Удалить библиотеку, установленную через make install

    поиск файла внутри скрипта

    Ярлыки клавиш не работают в KDE 4.5.0

    Linux и Unix - лучшая ОС в мире.