|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : août 2007 Messages : 3 ![]() |
Bonjour,
J'ai un fichier texte composé de la manière suivante : [1] Devise1 [D] col1 col2 col3 col4 [D] col1 col2 col3 col4 [1] Devise2 [D] col2 col2 col3 col4 [D] col2 col2 col3 col4 J'aimerais obtenir le fichier suivant : [D] col1 col2 col3 col4 Devise1 [D] col1 col2 col3 col4 Devise1 [D] col2 col2 col3 col4 Devise2 [D] col2 col2 col3 col4 Devise2 J'arrive à le faire par un cat du fichier et un test sequentiel des 3 premiers caractères de chaque ligne ([1] ou [D]). (si [1] je gére une variable $Devise, si [D] je réécris la ligne dans un fichier en y rajoutant $Devise ). Mais le pb est que mon fichier est énorme 150 Mb et cette méthode est trop coûteuse en temps. Une idée plus rapide avec sed ou awk ou combinaison de grep,sed, awk ??? J'avoue avoir cherché et ne pas avoir trouvé. Merci d'avance pour votre aide ! Mimi |
|
|
00
|
|
|
#2 | ||
|
Membre expérimenté
![]() Inscription : mars 2007 Messages : 469 ![]() |
Solution en awk
Code :
__________________
Loi de Murphy: La Théorie c'est quand ça ne marche pas mais que l'on sait pourquoi. La Pratique c'est quand ça marche mais qu'on ne sait pas pourquoi. Quand la théorie rejoint la pratique ça ne marche pas et on ne sait pas pourquoi. |
||
|
|
00
|
|
|
#3 | ||
|
Membre Expert
![]() Inscription : mars 2002 Messages : 945 ![]() |
En Sed, il suffit de faire ça (en passant l'option -n) :
Code :
|
||
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : août 2007 Messages : 3 ![]() |
LLB et BlaireauOne, merci beaucoup pour vos réponses.
J'essaie et je vous tiens au courant. Cdt Mimi |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : août 2007 Messages : 3 ![]() |
J'ai opté pour la solution sed -n, qui est plus rapide et qui fonctionne à merveille.
Merci beaucoup ! Mimi57 |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com