nhrt – консольная программа для замены текста в файлах и преобразования кодировок текстовых файлов.

Новая версия программы nhrt v2.14.0.

Файлы новой версии nhrt

Скачать новую версию программы можно по ссылке ниже.

nhrt binaries

Включает исполняемые файлы nhrt.exe, nhconv.exe и bat файлы с примерами использования . Требуется установка файлов вручную: скопируйте файлы в подходящую папку. Работает в Microsoft Windows XP SP3 и старше. ZIP 367 кБ

Содержит исполняемые файлы программ и bat файлы с примерами использования. Требуется установка вручную: скопируйте файлы в подходящую папку.

Предыдущие версии nhrt (nhreplace)

Архивные версии

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

Описание nhrt

Справка по nhrt

Вопросы и ответы по nhrt

6 мыслей о “Загрузка nhrt

  • 08.05.2019 в 06:55
    Постоянная ссылка

    nhutils, спасибо!

    вместо регулярного выражения
    -sre:"Первый канал \(\+1\)"
    проще написать обычный текст
    -spt:"Первый канал (+1)"

    чтобы указать, что образец находится в конце строки, в регулярных выражениях пишут:
    -sre:"Первый канал$"

    Сразу я так и писал, но программа не отрабатывала, замен не было. Пришлось кавычки экранировать. Так же и в случае просто якоря $.
    Поэтому пришел к варианту:
    -sre:"Первый канал \(\+1\)\r?$" -t:"1 канал" -i -occ:1
    Так вроде всё нормально обрабатывается.

    программа nhrt заменяет всё заданное выражение поиска.

    Да, это я понял. Спасибо.

    Ответ
  • 07.05.2019 в 08:06
    Постоянная ссылка

    Здравствуйте.
    В описании программы указано «..требуется установка файлов вручную»
    Подскажите, пожалуйста, как именно правильно скомпилировать, чтобы получился файл nhreplace.exe ?

    Ответ
    • 07.05.2019 в 12:31
      Постоянная ссылка

      Здравствуйте, «требуется установка файлов вручную» означает, что нужно вручную распаковать исполняемые файлы из скачанного zip архива, положить в нужную папку, прописать путь в PATH.
      Компилировать не требуется. nhreplace.exe — это старое название программы, она была переименована в nhrt.exe, начиная с версии 2.9 https://nhutils.ru/blog/nhrt-v2-9-0/

      Ответ
      • 07.05.2019 в 19:13
        Постоянная ссылка

        Спасибо за ответ! И огромный респект за программу. Очень нужная утилита во многих случаях. Жаль, что мало кто о ней знает.
        Как раз собирался писать скрипт vbs для редактирования плейлистов и случайно натолкнулся на Вашу программу. Это то, что «доктор прописал»
        Скрипт получался огромным, во входном файле могло требоваться и до 1000 замен, а в коде для каждой замены 15 строк.
        В текстовом файле для параметра -list Вашей программы получается гораздо меньше.
        Но никак не могу разобраться как конкретно указать выражение, которое нужно заменить, чтобы замена шла только если будет найдено всё указанное выражение.
        Например в строках «Первый канал», «Первый канал HD», «Первый канал (+1), если не указывать -occ:1, поменяются все найденные вхождения. Но если указать так:
        -set:"Первый канал" -t:"1 канал" -i -occ:"1"
        -set:"Первый канал HD" -t:"1 канал HD" -i -occ:"1"
        -sre:"Первый канал \(\+1\)" -t:"1 канал (+1)" -i -occ:"1"

        то замена выполняется только во втором и третьем вхождении, первое почему то не изменяется.
        В разных плейлистах эти строки могут быть на разных местах, их нужно как-то конкретно указать.
        Пробовал добавлять конец строки (выражения для замены в плейлисте всегда в конце строки) так:
        -sre:"Первый канал \(\+1\)$" -t:"1 канал (+1)" -i -occ:"1"
        Но при этом замена не выполняется.
        Извините, может немного сумбурно объяснил. Вкратце: для замены нужно указать конкретное выражение, чтобы не трогать похожие.
        Можно ли так сделать, подскажите, пожалуйста ?

        Ответ
        • 07.05.2019 в 22:45
          Постоянная ссылка

          Вроде разобрался, не знаю насколько правильно, добавил в конец выражения для замены конструкцию с якорем \r?$
          Получилось так:
          -sre:"Первый канал\r?$" -t:"1 канал" -i -occ:1
          Вроде отрабатывает нормально.

          Ответ
          • 08.05.2019 в 01:22
            Постоянная ссылка

            чтобы замена шла только если будет найдено всё указанное выражение

            не очень понятно, что имеется в виду, потому что программа nhrt заменяет всё заданное выражение поиска. то ли подразумевается совпадение всей строки в файле со строкой поиска, то ли что-то другое…

            вообще, в списке надо поставить образцы в другом порядке, чтобы более короткая строка поиска была в списке последней и не срабатывала вместо более длинных:
            -set:"Первый канал HD" -t:"1 канал HD" -i -occ:"1"
            -sre:"Первый канал \(\+1\)" -t:"1 канал (+1)" -i -occ:"1"
            -set:"Первый канал" -t:"1 канал" -i -occ:"1"

            вместо регулярного выражения
            -sre:"Первый канал \(\+1\)"
            проще написать обычный текст
            -spt:"Первый канал (+1)"

            чтобы указать, что образец находится в конце строки, в регулярных выражениях пишут:
            -sre:"Первый канал$"
            здесь грамматика описывается TR1 Regular Expressions

            если конец строки указывать в обычном тексте, то для Windows можно сделать:
            -set:"Первый канал\r" -t:"1 канал\r"

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

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