J'ai un certain nombre de lignes dans un fichier, et je voudrais copier chaque ligne 11 fois (en transformant chaque ligne en 12 lignes), et incrémenter le dernier "1" de chaque ligne afin que les 12 lignes aient "1" à " 12 ", où se trouvait initialement le" 1 ". Il peut y avoir d'autres occurrences de «1» dans chaque ligne, mais le «1» que je veux incrémenter sera toujours la dernière occurrence de chaque ligne. Une autre façon de voir les choses est que le dernier "1" est toujours après "/ nt /" - comme dans "/ nt / 1" (et ce sera toujours la seule occurrence de "/ nt / 1" dans chaque ligne) .
Ainsi, par exemple, si j'ai:
1stlineblahblahblah/nt/1blah
2ndlineblahblahblah/nt/1blah
3rdlineblahblahblah/nt/1blah
Je veux en faire:
1stlineblahblahblah/nt/1blah
1stlineblahblahblah/nt/2blah
1stlineblahblahblah/nt/3blah
1stlineblahblahblah/nt/4blah
1stlineblahblahblah/nt/5blah
1stlineblahblahblah/nt/6blah
1stlineblahblahblah/nt/7blah
1stlineblahblahblah/nt/8blah
1stlineblahblahblah/nt/9blah
1stlineblahblahblah/nt/10blah
1stlineblahblahblah/nt/11blah
1stlineblahblahblah/nt/12blah
2ndlineblahblahblah/nt/1blah
2ndlineblahblahblah/nt/2blah
2ndlineblahblahblah/nt/3blah
...
J'avais précédemment trouvé la commande:
:for i in range(0,12) | put ='1stlineblahblahblah/nt/'.i.'blah' | endfor
fonctionne à cet effet, mais je devrais exécuter manuellement cette commande pour chaque ligne et taper chaque ligne (ou la copier-coller) moi-même. Existe-t-il un moyen de prendre les lignes qui sont déjà dans le fichier et d'exécuter simplement une commande qui transforme chaque ligne en douze, de la manière que j'ai décrite?
Merci d'avance à tous ceux qui peuvent m'aider. Je tenais également à souligner qu'il s'agit de ma deuxième question ici, et j'étais heureux d'avoir obtenu plusieurs solutions rapides et efficaces à ma première question, pour lesquelles j'étais très reconnaissant.