Изменение чисел в формате «[#number]» в файле MTA, чтобы они были последовательными

420
ShaunHill

У меня очень длинный MTA-файл для сценариев изменения тегов MP3.

Я много раз редактировал файл в Notepad ++, и это приводило к тому, что числа для каждого конкретного действия не синхронизировались.

Как я могу использовать Notepad ++, чтобы найти каждый экземпляр '[#number]' и заменить содержимое, увеличенное на единицу, каждый раз, когда находит совпадение, начиная с начала файла?

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

Example screenshots

1

1 ответ на вопрос

0
Julio

Вы не можете «добавить один» с помощью регулярного выражения с помощью notepad ++.

Однако этот обходной путь может работать для вас:

  1. Очистите номера в первую очередь: заменить \[#\d+\]на[#]
  2. Замените новые строки чем-то, что не может быть повторено внутри файла: например, замените \r\n(?!\r\n)на<<<EOL>>>
  3. Исправить первую строку (введите номер от руки)
  4. Используйте редактор столбцов для остальных столбцов. Поместите курсор на вторую строку после «#» и нажмите ALT + C
  5. Выберите «Номер для вставки»: начальный номер => 2, увеличение на => 1.
  6. Выберите «Ведущие нули»
  7. ОК => Это добавит номера
  8. Заменить \[#0+(\d+)\]на[#\1]
  9. Теперь восстановите конец строки: замените <<<EOL>>>на\r\n

Примечание: я предполагаю, что конец строки Windows. Возможно, вам придется использовать \rдля Mac или \nLinux.

Спасибо за ваш ответ. Я буду тестировать это в ближайшее время, но мне будет интересно, есть ли способ конвертировать его в скрипт в Блокноте, который можно запустить либо с подсказкой в ​​середине, чтобы выполнить ручную работу, либо в виде двух скриптов, имеющих дело в первую очередь с шагами 1-2 и 4. -8? ShaunHill 6 лет назад 0
Вы можете использовать функциональность записи макроса. Однако кажется, что вы не можете записать «Редактор столбцов» в макросе. Так что вы, вероятно, захотите записать 1-3 и 5-8 и назначить им ярлыки. Затем: 1) вызвать первый макрос, 2) вручную вызвать редактор столбцов (alt + c), 3) вызвать второй макрос Julio 6 лет назад 0
Спасибо за ответ. Я только начал тестировать это, и все, что вы говорите, работает нормально, пока я не до конца. Я замечаю все числа, которые от 1 до 9 содержат дополнительный пробел после них, например «[# 1]», когда-то собранные вместе в конце. Как мне исправить это как часть макроса, пожалуйста? ShaunHill 6 лет назад 0
Я просто добавил еще один шаг. Просто используйте «ведущие нули», а затем удалите их. Для макроса используйте шаги 1-3, Alt + C, а затем 5-9 Julio 6 лет назад 0
Выглядело хорошо, пока я не проверил код. Теперь у меня проблема с большинством строк: [# 77] T = 2 F = _DIRECTORY 1 = (Цифровой альбом) 2 = 3 = 0 | 0 В строке 3 добавлено «| 0», которого раньше не было. Как мне исправить это как часть макроса, пожалуйста? ShaunHill 6 лет назад 0
Это дополнительное «| 0» не имеет особого смысла. Мне просто интересно, может ли это быть опечатка при записи макроса. Могу ли я попросить вас загрузить файл (или его часть) куда-нибудь, чтобы я мог проверить его на своем компьютере? Julio 6 лет назад 0

Похожие вопросы