Suppression d'un bloc de lignes recurssif
Résolu
gogo
-
gogo -
gogo -
Bonjour,
voila j'ai un fichier avec des blocs de 72 lignes
exemple :
1:debut
2:gfs
3:hfds
4:hfds
.....
....
69:gdsq
70:gdsq
71:gqsd
72 :fin
73:debut
74:gfs
75:hfds
76:hfds
.....
....
140:gdsq
142:gdsq
143:gqsd
144 :fin
145:debut
146:gfs
147:hfds
148:hfds
.....
....
213:gdsq
214:gdsq
215:gqsd
216:fin
....
....
je voudrai savoir comment je peux supprimer les lignes '57 a 69' du premier bloc et les lignes '114 a 126' du deuxieme bloc et les lignes '171 a 183' .... avec la commande sed ou autre jusqu'a fin de fichier
merci d'avance
voila j'ai un fichier avec des blocs de 72 lignes
exemple :
1:debut
2:gfs
3:hfds
4:hfds
.....
....
69:gdsq
70:gdsq
71:gqsd
72 :fin
73:debut
74:gfs
75:hfds
76:hfds
.....
....
140:gdsq
142:gdsq
143:gqsd
144 :fin
145:debut
146:gfs
147:hfds
148:hfds
.....
....
213:gdsq
214:gdsq
215:gqsd
216:fin
....
....
je voudrai savoir comment je peux supprimer les lignes '57 a 69' du premier bloc et les lignes '114 a 126' du deuxieme bloc et les lignes '171 a 183' .... avec la commande sed ou autre jusqu'a fin de fichier
merci d'avance
A voir également:
- Suppression d'un bloc de lignes recurssif
- Forcer la suppression d'un fichier - Guide
- Bloc-notes (windows) - Télécharger - Traitement de texte
- Partage de photos en ligne - Guide
- Suppression compte gmail - Guide
- Suppression page word - Guide
7 réponses
Salut,
Avec un truc du genre :
Avec un truc du genre :
sed '57~57 s/.*/DEBUT&/; 69~57 s/.*/FIN&/' fichier | sed '/DEBUT/,/FIN/d'C'est pas très académique, mais ça marche ;-))
bonjour jipicy
ben ca ne marche pas, mon but est de supprimer les lignes de 57 à 69 d'un bloc de 72 lignes dans un fichier de presque 1000000 de lignes
alors je cherche un truc du genre boucle "for / sed / i,j incremental de 57 ".
merci
ben ca ne marche pas, mon but est de supprimer les lignes de 57 à 69 d'un bloc de 72 lignes dans un fichier de presque 1000000 de lignes
alors je cherche un truc du genre boucle "for / sed / i,j incremental de 57 ".
merci
Bon on va essayer avec un exemple.
Soit un fichier de 50 lignes. Supprimer les lignes 4 à 6 d'un bloc de 12 lignes :
Soit un fichier de 50 lignes. Supprimer les lignes 4 à 6 d'un bloc de 12 lignes :
jp@MDK:~/tmpfs ssh$ cat fich 1debut bloc 2 3 4a supprimer 5a supprimer 6a supprimer 7 8 9 10 11 12fin bloc 13debut bloc 14 15 16a supprimer 17a supprimer 18a supprimer 19 20 21 22 23 24fin bloc 25debut bloc 26 27 28a supprimer 29a supprimer 30a supprimer 31 32 33 34 35 36fin bloc 37debut bloc 38 39 40a supprimer 41a supprimer 42a supprimer 43 44 45 46 47 48fin bloc 49debut bloc 50 jp@MDK:~/tmpfs ssh$ sed '4~12 s/.*/DEBUT&/;6~12 s/.*/FIN&/' fich | sed '/DEBUT/,/FIN/d' 1debut bloc 2 3 7 8 9 10 11 12fin bloc 13debut bloc 14 15 19 20 21 22 23 24fin bloc 25debut bloc 26 27 31 32 33 34 35 36fin bloc 37debut bloc 38 39 43 44 45 46 47 48fin bloc 49debut bloc 50 jp@MDK:~/tmpfs ssh$Ça le fait, non ?
re
ben je vois bien que ca le fait mais avec mon fichier c'est pas le cas,je travaille sous UNIX je ne sais pas pourquoi ca marche pas
"&/ is not a recognized function."
au faite les lignes a supprimer sont des sauts de lignes '^M' y'en a plein mais je veux seulement supprimer ceux de la ligne 57 à 69
car je peux les supprimer toutes en meme temps mais je veux seulement ceux de la fin cad 'de 57 à 69'
je ne sais pas si tu me comprends ??
merci encore une fois
ben je vois bien que ca le fait mais avec mon fichier c'est pas le cas,je travaille sous UNIX je ne sais pas pourquoi ca marche pas
"&/ is not a recognized function."
au faite les lignes a supprimer sont des sauts de lignes '^M' y'en a plein mais je veux seulement supprimer ceux de la ligne 57 à 69
car je peux les supprimer toutes en meme temps mais je veux seulement ceux de la fin cad 'de 57 à 69'
je ne sais pas si tu me comprends ??
merci encore une fois
"&/ is not a recognized function."
Vu que c'est des lignes vides, à ce moment là supprime le "&" de l'expression (s/.*/DEBUT/)...
au faite les lignes a supprimer sont des sauts de lignes '^M' y'en a plein mais je veux seulement supprimer ceux de la ligne 57 à 69
Est-ce que c'est les seules lignes vides consécutives de ton fichier ?
Vu que c'est des lignes vides, à ce moment là supprime le "&" de l'expression (s/.*/DEBUT/)...
au faite les lignes a supprimer sont des sauts de lignes '^M' y'en a plein mais je veux seulement supprimer ceux de la ligne 57 à 69
Est-ce que c'est les seules lignes vides consécutives de ton fichier ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question