Эта статья рассказывает, как, зная код символа, удалить его или заменить его на другой символ в командной строке Windows или в bat файле. Эта операция может быть выполнена над текстом в файле или в выводе программы.

Содержание:

  1. Примеры задач по замене или удалению символа по его коду
  2. Возможности программы nhrt для работы с символами
  3. Замена символа по коду в текстовом файле или выводе другой программы
  4. Удаление символа по коду в текстовом файле или выводе другой программы

Примеры задач по замене или удалению символа по его коду

Такое преобразование текста может понадобиться, если требуется исправить вывод какой-то программы, чтобы скорректировать только определённый символ, который представляет собой не букву или цифру, а указывается его кодом (ASCII или Unicode).

Для примера можно взять вывод таких программ, как dir или tasklist. Эти программы для размера файла или объема памяти процесса используют символ-разделитель разделителем 0xFF (в 8-битной кодировке) или 0x00A0 (в 16-битной кодировке), а не обычный пробел (0x20).

Вот как это выглядит для кодировки Unicode 16 LE (если запущено из cmd /u):

и для 8-битной кодировки (ANSI или OEM):

При просмотре это выглядит нормально, но если для последующей обработки требуется удалить этот разделитель или заменить его на другой символ, например, на стандартный пробел, то это можно сделать одной командой в программе nhrt..

Возможности программы nhrt для работы с символами

Программа nhrt, начиная с версии 2.7, поддерживает возможность указывать символ в строке поиска по его шестнадцатиричном коду в виде ESC послендовательности:

  • Запись символа с 8-битным кодом -set:"\xHH"
  • Запись символа с 16-битным кодом -set:"\uHHHH"

Замена символа по коду

Поэтому для замены символа U+00A0 на стандартный пробел U+0020 используется команда nhrt -set:"\u00A0" -t:" ".

Замена символа по коду в текстовом файле

Если вывод сохранен, например, в файл tasklist.txt, то команда для замены символа по всему файлу будет следующей :

tasklist > tasklist.txt
nhrt -set:"\u00A0" -t:" " tasklist.txt

Замена символа по коду в выводе программы

Можно заменять символы сразу в выводе программы, просто направив вывод другой программы во входной поток nhrt:

tasklist | nhrt -set:"\u00a0" -t:" "

Удаление символа по коду

Для удаления символа U+00A0 используется команда nhrt -set:"\u00A0" -e.

Удаление символа по коду в текстовом файле

Если вывод сохраняется, например, в файл tasklist.txt, то команда для удаления символа будет следующей :

tasklist > tasklist.txt
nhrt -set:"\u00A0" -e tasklist.txt

Удаление символа по коду в выводе программы

Чтобы удалить символ сразу в выводе программы, используется такая команда::

tasklist | nhrt -set:"\u00a0" -e

Узнать больше

Программа nhrt для замены текста

Параметр set для указания простого текста с ESC последовательностями/

Можно использовать режим работы по списку замен, чтобы выполнять замены различных символов за одно выполнение команды.

Файлы для скачивания

Скачать с Яндекс диска (все скрипты, папка nhrt замена по коду символа)

Как заменить или удалить символ по коду
Метки:     

2 мыслей о “Как заменить или удалить символ по коду

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *