Regex, чтобы заменить слова в качестве альтернативы

Я работал над именами файлов, чтобы дать альтернативные имена. т.е. у меня есть несколько повторяющихся или повторяющихся имен. Это вход:

 image  
 thisismyimage  
 image  
 image  
 anotherimage

Я искал решение, чтобы дать альтернативные имена всем этим дубликатам имен.image необходимо заменить на imageofme, imageofher, или же nextimageЯ ожидаю этого выхода,

 imageofme  
 thisismyimage  
 imageofher  
 nextimage  
 anotherimage

Я использую простое регулярное выражение, я пытался заменить изображение на [imageofme|imageofher|nextimage], но это дает все изображения с этим именем, все, что помещено в поле заменить на поле, было заменено на все [imageofme|imageofher|nextimage], Есть ли решение, чтобы выбрать альтернативные имена из него или получить уникальные имена для замены этих дубликатов (что-то вроде номера изображения или идентификатора)? Любые идеи, как чередование может быть сделано в регулярных выражениях?

1 ответ

Если у вас есть Perl:

perl -pe '
    BEGIN { @alternative_names = qw(imageofme imageofher nextimage) }
    s/^image$/shift @alternative_names/e
' your_file

Масштаб по мере необходимости.

Другие вопросы по тегам