If you need to do this only once and never again, then do it in the editor in order. When you have to do this multiple times, it becomes a big pain to do it manually, and that when automation is required.
Without sample text containing targets, this is similar to shooting in the dark, however this is similar to your description using Ruby:
text = %{ [Lorem][] ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore [et][] dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi [ut][] aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse [cillum][] dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui [officia deserunt][] mollit anim id est laborum. } text.scan(/\[[^\]]+\]\[\]/).each_with_index{ |t, i| text[t] = t.sub('[]', "[#{1 + i}]") } puts text # >> # >> [Lorem][1] ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut # >> labore [et][2] dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco # >> laboris nisi [ut][3] aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in # >> voluptate velit esse [cillum][4] dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat # >> non proident, sunt in culpa qui [officia deserunt][5] mollit anim id est laborum.
source share