Mam kilka linii w pliku i chciałbym skopiować każdą linię 11 razy (zamieniając każdą linię w 12 linii) i zwiększać ostatnią „1” w każdej linii, tak aby 12 linii miało „1” do „ 12 ”, gdzie początkowo była„ 1 ”. W każdej linii mogą występować inne wystąpienia „1”, ale „1”, które chcę zwiększyć, będzie zawsze ostatnim wystąpieniem w każdej linii. Innym sposobem spojrzenia na to jest to, że ostatnie „1” jest zawsze po „/ nt /” - jak w „/ nt / 1” (i zawsze będzie to jedyne wystąpienie „/ nt / 1” w każdej linii) .
Na przykład, jeśli mam:
1stlineblahblahblah/nt/1blah
2ndlineblahblahblah/nt/1blah
3rdlineblahblahblah/nt/1blah
Chcę to przekształcić w:
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
...
Wcześniej znalazłem polecenie:
:for i in range(0,12) | put ='1stlineblahblahblah/nt/'.i.'blah' | endfor
działa w tym celu, ale musiałbym ręcznie uruchomić to polecenie dla każdej linii i sam wpisać każdą linię (lub skopiować i wkleić). Czy istnieje sposób na pobranie linii, które są już w pliku, i po prostu uruchom jedno polecenie, które zamienia każdą linię na dwanaście, w sposób, który opisałem?
Z góry dziękuję wszystkim, którzy mogą mi w tym pomóc. Chciałem też zauważyć, że jest to moje drugie pytanie tutaj i cieszyłem się, że otrzymałem kilka szybkich i skutecznych rozwiązań dla mojego pierwszego pytania, za które byłem najbardziej wdzięczny.