Как я могу найти расширенные символы ASCII в файле с помощью Perl?
-
22-08-2019 - |
Вопрос
Как найти в файле расширенные символы ASCII с помощью Perl?Кто-нибудь может получить сценарий?
..... заранее спасибо .....
Решение
Поскольку расширенные символы ASCII имеют значение 128 и выше , вы можете просто вызвать ord для отдельных символов и обработать те, которые имеют значение>= 128. Следующий код читает из стандартного ввода и печатает только расширенные символы ASCII:
родовое словоТакже можно распаковать вместе с chr также будет работать. Пример:
родовое слово(Я уверен, что какой-нибудь гуру Perl может объединить оба эти слова в два однострочных ...)
Чтобы вместо этого напечатать номера строк, вы можете использовать следующее (это не удаляет дубликаты и будет иметь странное поведение при передаче Unicode):
родовое слово(Спасибо, Яакову Белчу за подсказку по созданию кода кода.)
Другие советы
Первый печатаемый символ ASCII - это space
(32).Последний печатаемый символ ASCII - это кодовый код (126).Так что я бы, наверное, использовал
хотя он, по общему признанию, также будет отображать строки, содержащие управляющие символы, а также расширенный ASCII.
Изменить: теперь печатается номер строки, а не сама строка.
Подложка:
родовое словодля старых версий Perl
родовое словоКлючевой вопрос: есть ли
использовать байты;
прагма должна действовать.Плакат должен решить это.Для выбора символов с кодами больше 127 достаточно следующего:
родовое словоили
родовое словоОтвет Гинек-Пичи-Выхода:
родовое словоПредполагается, что проверяется только ограниченная часть непечатаемого
родовое слововместо этого.
А как насчет grep?