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
Масштаб по мере необходимости.