Номер Notepad ++ regexp увеличивается

116
17

У нас есть старая установка PhpBB3 с большим количеством сообщений в ней. Мы сделали новую установку, в которой уже есть новые сообщения. Что я хочу сделать, это экспортировать MySQL в XML из старой установки, сбросить post_id и topic_id на следующий номер новой установки. Мы поместим все в 1 новую категорию (импорт, 111).

            <column name="post_id">3</column>
<column name="topic_id">3</column>

Новые столбцы работают в 3000, скажем, 3337. Так что мне нужна каждая строка, которая имеет

<column name="post_id">3</column>

Нужно получить

<column name="post_id">3338</column>

То же самое касается topic_id... Как это сделать?

спросил(а) 2021-01-19T13:26:03+03:00 2 месяца, 3 недели назад
1
Решение
87

Вы можете сделать это с помощью Ruby, Python или Perl. Вот как это делается в Ruby:

$ ruby -pi.bak -e '$_.gsub!(/(<column name="post_id">)(\d+)(<\/column>)/) { "#{$1}#{$2.to_i + 3000}#{$3}" }' file.xml

file.xml будет отредактирован на месте, а резервная копия будет сохранена в file.xml.bak.

ответил(а) 2021-01-19T13:26:03+03:00 2 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема