Пробовал это с vim, но открыт для других идей / предложений.
Хотел бы выполнить поиск и заменить в файле 12000 строк.
В частности, если вхождение «^ SetFontSize 28» существует после определения «^ Hide» и перед следующим «^ Hide» или «^ Show», измените 28 на 18. Пример ниже.
Вот фрагмент оригинального файла.
Hide # Gear - Endgame
ItemLevel >= 77
Rarity = Magic
LinkedSockets >= 3
BaseType "Runic Hatchet"
SetTextColor 140 190 255 # Magic Item Highlight
SetFontSize 28
Hide # Gear - Endgame
ItemLevel >= 77
Rarity = Magic
Sockets >= 3
BaseType "Runic Hatchet"
SetTextColor 140 190 255 # Magic Item Highlight
SetFontSize 28
Show # Gear - Endgame
ItemLevel >= 83
Rarity = Normal
Sockets < 3
BaseType "Tiger Hook"
SetTextColor 240 240 240 # Normal Item Highlight
SetBackgroundColor 70 70 70
SetFontSize 28
Конечный результат для первого блока "Скрыть" будет выглядеть так:
Hide # Gear - Endgame
ItemLevel >= 77
Rarity = Magic
LinkedSockets >= 3
BaseType "Runic Hatchet"
SetTextColor 140 190 255 # Magic Item Highlight
SetFontSize 18
Замена SetFontSize 28 на SetFontSize 18, но только если он появляется в блоке «^ Hide».
Противное регулярное выражение, которое я пробовал в vim :%s/^Hide\(.*\)SetFontSize 28$/Hide\1SetFontSize 18/g
Но сказали, что образец не найден. Пожалуйста, дайте мне знать, если какая-либо дополнительная информация требуется или мой запрос неясен.