Substitution(s) avec Vi

Résolu
Bonjour tout le monde,

un petit souci avec le fichier suivant:

+1 <?xml version="1.0" encoding="UTF-8"?>
+3 <IMAGE>
+4 <NAME>115-1503_IMG.jpg</NAME>
+5 <CAPTION>Image 1</CAPTION>
+6 </IMAGE>
+7 <IMAGE>
+8 <NAME>115-1503_IMG.jpg</NAME>
+9 <CAPTION>Image 2</CAPTION>
+10 </IMAGE>
+11 <IMAGE>
+12 <NAME>115-1503_IMG.jpg</NAME>
+13 <CAPTION>Image 3</CAPTION>
+14 </IMAGE>

ma question est la suivante:
je cherche à copier par exemple 20 fois les lignes 3 à 6 et ce, à la fin du fichier,
pour le moment j'ai essayé en faisant :3,6co$ ( soit une copie des lignes 3, 6 à la fin du fichier)
j'ai essayé en introduisant yy dedans, avec des "marques" => :'a,'b20co'c mais rien n'y fait

je vous remercie par avance pour votre aide

++

Poulpoul
Configuration: AIX 5.3
korn shell

9 réponses

  1. alors, je pense qu'on peut faire :

    Tu te place sur la ligne 3, tu fais "y4" ça te copie les lignes, puis tu vas à la fin du fichier...avec $ maybe et tu fais "p", non?

    ++
    1. non çà ne passe pas,
      ce qui me pose surtout problème ce sont les 20 copies à faire
      je n'arrive qu'à en effectuer une seule, c'est triste ...
      merci pour ton aide, je continue ma recherche
      1. tu te places ligne 3
        4yy (lignes 3 4 5 et 6 en bufffer)
        tu te places derniere ligne fichier et tu fais 20 fois P (shift p) (copie 20 fois du buffer avant le curseur)
        Bonne journée.
        1. oui, j'ai dit nawak, 4y et non y4 ... si cela ne marche pas... je ne sais pas alors.

          1. Modérateur
            Salut,

            alors pourquoi pas
            - se placer sur la ligne 3
            - taper sur la touche 4 (pour quatre lignes)
            - appuyer 2 fois sur la touche d
            - allez sur la dernière ligne (en fait il faut inserer un ligne vide à la fin)
            - 20 fois Ctrl+P

            Perso j'aurai préféré de le faire avec une commande, mais si tu le veux avec Vi
            1. si tu fais deux fois d tu supprimes la ligne... Je ne suis pas sur que ce soit ce qu'il veut, non?
              1. Modérateur
                En effet tu as raison

                mais elle est garder dans le buffer
                j'ai oublié une étape :-)) mais c'est vrai que c'est redondant,
                je reste toujours pour une commande que je ne la donne pas puisque je n'ai pas un environnement pour tester.

                - se placer sur la ligne 3
                - taper sur la touche 4 (pour quatre lignes)
                - appuyer 2 fois sur la touche d
                - 1 fois Ctrl+P
                - allez sur la dernière ligne (en fait il faut inserer un ligne vide à la fin)
                - 20 fois Ctrl+P
                1. Modérateur
                  lami20j@debian:~$ cat poulpoul
                   +1 <?xml version="1.0" encoding="UTF-8"?>
                   +3 <IMAGE>
                   +4 <NAME>115-1503_IMG.jpg</NAME>
                   +5 <CAPTION>Image 1</CAPTION>
                   +6 </IMAGE>
                   +7 <IMAGE>
                   +8 <NAME>115-1503_IMG.jpg</NAME>
                   +9 <CAPTION>Image 2</CAPTION>
                   +10 </IMAGE>
                   +11 <IMAGE>
                   +12 <NAME>115-1503_IMG.jpg</NAME>
                   +13 <CAPTION>Image 3</CAPTION>
                   +14 </IMAGE>
                  lami20j@debian:~$ for i in $(seq 20);do head -5 poulpoul | tail -4;done >> poulpoul_final
                  lami20j@debian:~$ cat poulpoul_final >> poulpoul
                  
                  


                  Le résultat
                   +1 <?xml version="1.0" encoding="UTF-8"?>
                   +3 <IMAGE>
                   +4 <NAME>115-1503_IMG.jpg</NAME>
                   +5 <CAPTION>Image 1</CAPTION>
                   +6 </IMAGE>
                   +7 <IMAGE>
                   +8 <NAME>115-1503_IMG.jpg</NAME>
                   +9 <CAPTION>Image 2</CAPTION>
                   +10 </IMAGE>
                   +11 <IMAGE>
                   +12 <NAME>115-1503_IMG.jpg</NAME>
                   +13 <CAPTION>Image 3</CAPTION>
                   +14 </IMAGE> 
                   +3 <IMAGE>
                   +4 <NAME>115-1503_IMG.jpg</NAME>
                   +5 <CAPTION>Image 1</CAPTION>
                   +6 </IMAGE>
                   +3 <IMAGE>
                   +4 <NAME>115-1503_IMG.jpg</NAME>
                   +5 <CAPTION>Image 1</CAPTION>
                   +6 </IMAGE>
                   +3 <IMAGE>
                   +4 <NAME>115-1503_IMG.jpg</NAME>
                   +5 <CAPTION>Image 1</CAPTION>
                   +6 </IMAGE>
                   +3 <IMAGE>
                   +4 <NAME>115-1503_IMG.jpg</NAME>
                   +5 <CAPTION>Image 1</CAPTION>
                   +6 </IMAGE>
                   +3 <IMAGE>
                   +4 <NAME>115-1503_IMG.jpg</NAME>
                   +5 <CAPTION>Image 1</CAPTION>
                   +6 </IMAGE>
                   +3 <IMAGE>
                   +4 <NAME>115-1503_IMG.jpg</NAME>
                   +5 <CAPTION>Image 1</CAPTION>
                   +6 </IMAGE>
                   +3 <IMAGE>
                   +4 <NAME>115-1503_IMG.jpg</NAME>
                   +5 <CAPTION>Image 1</CAPTION>
                   +6 </IMAGE>
                   +3 <IMAGE>
                   +4 <NAME>115-1503_IMG.jpg</NAME>
                   +5 <CAPTION>Image 1</CAPTION>
                   +6 </IMAGE>
                   +3 <IMAGE>
                   +4 <NAME>115-1503_IMG.jpg</NAME>
                   +5 <CAPTION>Image 1</CAPTION>
                   +6 </IMAGE>
                   +3 <IMAGE>
                   +4 <NAME>115-1503_IMG.jpg</NAME>
                   +5 <CAPTION>Image 1</CAPTION>
                   +6 </IMAGE>
                   +3 <IMAGE>
                   +4 <NAME>115-1503_IMG.jpg</NAME>
                   +5 <CAPTION>Image 1</CAPTION>
                   +6 </IMAGE>
                   +3 <IMAGE>
                   +4 <NAME>115-1503_IMG.jpg</NAME>
                   +5 <CAPTION>Image 1</CAPTION>
                   +6 </IMAGE>
                   +3 <IMAGE>
                   +4 <NAME>115-1503_IMG.jpg</NAME>
                   +5 <CAPTION>Image 1</CAPTION>
                   +6 </IMAGE>
                   +3 <IMAGE>
                   +4 <NAME>115-1503_IMG.jpg</NAME>
                   +5 <CAPTION>Image 1</CAPTION>
                   +6 </IMAGE>
                   +3 <IMAGE>
                   +4 <NAME>115-1503_IMG.jpg</NAME>
                   +5 <CAPTION>Image 1</CAPTION>
                   +6 </IMAGE>
                   +3 <IMAGE>
                   +4 <NAME>115-1503_IMG.jpg</NAME>
                   +5 <CAPTION>Image 1</CAPTION>
                   +6 </IMAGE>
                   +3 <IMAGE>
                   +4 <NAME>115-1503_IMG.jpg</NAME>
                   +5 <CAPTION>Image 1</CAPTION>
                   +6 </IMAGE>
                   +3 <IMAGE>
                   +4 <NAME>115-1503_IMG.jpg</NAME>
                   +5 <CAPTION>Image 1</CAPTION>
                   +6 </IMAGE>
                   +3 <IMAGE>
                   +4 <NAME>115-1503_IMG.jpg</NAME>
                   +5 <CAPTION>Image 1</CAPTION>
                   +6 </IMAGE>
                   +3 <IMAGE>
                   +4 <NAME>115-1503_IMG.jpg</NAME>
                   +5 <CAPTION>Image 1</CAPTION>
                   +6 </IMAGE>
                  


                  1. coucouille
                    çà a l'air pas mal cette histoire,
                    cependant je ne comprends pas le "seq" dans la variable, cela correspond à quoi exactement ?
                    je suppose que c'est ce qui éxécute la multiplication ....
                    merci merci
                    ++