Substitution(s) avec Vi

Résolu/Fermé
Utilisateur anonyme - 5 juin 2007 à 17:33
 Utilisateur anonyme - 18 juin 2007 à 14:40
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

9 réponses

sanko Messages postés 147 Date d'inscription lundi 28 mai 2007 Statut Membre Dernière intervention 5 août 2010 11
5 juin 2007 à 17:57
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?

++
0
Utilisateur anonyme
5 juin 2007 à 18:11
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
0
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.
0
sanko Messages postés 147 Date d'inscription lundi 28 mai 2007 Statut Membre Dernière intervention 5 août 2010 11
6 juin 2007 à 09:44
oui, j'ai dit nawak, 4y et non y4 ... si cela ne marche pas... je ne sais pas alors.

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
6 juin 2007 à 10:22
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
0
sanko Messages postés 147 Date d'inscription lundi 28 mai 2007 Statut Membre Dernière intervention 5 août 2010 11
6 juin 2007 à 10:30
si tu fais deux fois d tu supprimes la ligne... Je ne suis pas sur que ce soit ce qu'il veut, non?
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
6 juin 2007 à 10:38
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
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
6 juin 2007 à 21:05
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>


0
Utilisateur anonyme
18 juin 2007 à 14:40
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
++
0